From 238b930c7f1431250fc060d543aa2ccd21b9d3a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ni=C3=B1o=20D=C3=ADaz?= Date: Sun, 16 Oct 2022 22:21:05 +0100 Subject: [PATCH] examples: Remove outdated examples --- examples/demos/Makefile | 5 - examples/demos/a_lot_of_balls/Makefile | 220 -------- examples/demos/a_lot_of_balls/data/cube.bin | Bin 796 -> 0 bytes examples/demos/a_lot_of_balls/data/model.bin | Bin 3100 -> 0 bytes .../demos/a_lot_of_balls/data/texcube.bin | Bin 8192 -> 0 bytes .../demos/a_lot_of_balls/data/texsphere.bin | Bin 8192 -> 0 bytes examples/demos/a_lot_of_balls/source/main.c | 239 --------- examples/demos/ti-ra-nog_3d_test/Makefile | 220 -------- .../demos/ti-ra-nog_3d_test/data/cube.bin | Bin 796 -> 0 bytes .../demos/ti-ra-nog_3d_test/data/sphere.bin | Bin 5148 -> 0 bytes .../demos/ti-ra-nog_3d_test/data/sphere1.bin | Bin 3100 -> 0 bytes .../demos/ti-ra-nog_3d_test/data/texcube.bin | Bin 8192 -> 0 bytes .../ti-ra-nog_3d_test/data/texsphere.bin | Bin 8192 -> 0 bytes examples/demos/ti-ra-nog_3d_test/readme.txt | 32 -- .../ti-ra-nog_3d_test/sd_card_data/cube.bin | Bin 796 -> 0 bytes .../ti-ra-nog_3d_test/sd_card_data/sphere.bin | Bin 5148 -> 0 bytes .../sd_card_data/sphere1.bin | Bin 3100 -> 0 bytes .../sd_card_data/texcube.bin | Bin 8192 -> 0 bytes .../sd_card_data/texsphere.bin | Bin 8192 -> 0 bytes .../demos/ti-ra-nog_3d_test/source/main.c | 488 ------------------ 20 files changed, 1204 deletions(-) delete mode 100644 examples/demos/Makefile delete mode 100644 examples/demos/a_lot_of_balls/Makefile delete mode 100644 examples/demos/a_lot_of_balls/data/cube.bin delete mode 100644 examples/demos/a_lot_of_balls/data/model.bin delete mode 100644 examples/demos/a_lot_of_balls/data/texcube.bin delete mode 100644 examples/demos/a_lot_of_balls/data/texsphere.bin delete mode 100644 examples/demos/a_lot_of_balls/source/main.c delete mode 100644 examples/demos/ti-ra-nog_3d_test/Makefile delete mode 100644 examples/demos/ti-ra-nog_3d_test/data/cube.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/data/sphere.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/data/sphere1.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/data/texcube.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/data/texsphere.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/readme.txt delete mode 100644 examples/demos/ti-ra-nog_3d_test/sd_card_data/cube.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/sd_card_data/sphere.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/sd_card_data/sphere1.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/sd_card_data/texcube.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/sd_card_data/texsphere.bin delete mode 100644 examples/demos/ti-ra-nog_3d_test/source/main.c diff --git a/examples/demos/Makefile b/examples/demos/Makefile deleted file mode 100644 index 6c369fd..0000000 --- a/examples/demos/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -SUBDIRS:= `ls` -all: - @for i in $(SUBDIRS); do if test -e $$i/Makefile ; then $(MAKE) -C $$i || { exit 1;} fi; done; -clean: - @for i in $(SUBDIRS); do if test -e $$i/Makefile ; then $(MAKE) -C $$i clean || { exit 1;} fi; done; diff --git a/examples/demos/a_lot_of_balls/Makefile b/examples/demos/a_lot_of_balls/Makefile deleted file mode 100644 index ee05e05..0000000 --- a/examples/demos/a_lot_of_balls/Makefile +++ /dev/null @@ -1,220 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -# DATA is a list of directories containing binary files embedded using bin2o -# GRAPHICS is a list of directories containing image files to be converted with grit -# AUDIO is a list of directories containing audio to be converted by maxmod -# ICON is the image used to create the game icon, leave blank to use default rule -# NITRO is a directory that will be accessible via NitroFS -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -INCLUDES := include -DATA := data -GRAPHICS := -AUDIO := -ICON := - -# specify a directory which contains the nitro filesystem -# this is relative to the Makefile -NITRO := - -# These set the information text in the nds file -GAME_TITLE := Nitro Engine example -GAME_SUBTITLE1 := built with devkitARM -GAME_SUBTITLE2 := http://devitpro.org - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -marm -mthumb-interwork -march=armv5te -mtune=arm946e-s - -CFLAGS := -g -Wall -O3\ - $(ARCH) $(INCLUDE) -DARM9 -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project (order is important) -#--------------------------------------------------------------------------------- -LIBS := -lNE -lfat -lnds9 - -# automatigically add libraries for NitroFS -ifneq ($(strip $(NITRO)),) -LIBS := -lfilesystem -lfat $(LIBS) -endif -# automagically add maxmod library -ifneq ($(strip $(AUDIO)),) -LIBS := -lmm9 $(LIBS) -endif - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) $(PORTLIBS) $(DEVKITPRO)/nitro-engine - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(CURDIR)/$(subst /,,$(dir $(ICON)))\ - $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))\ - $(foreach dir,$(DATA),$(CURDIR)/$(dir))\ - $(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -# prepare NitroFS directory -ifneq ($(strip $(NITRO)),) - export NITRO_FILES := $(CURDIR)/$(NITRO) -endif - -# get audio list for maxmod -ifneq ($(strip $(AUDIO)),) - export MODFILES := $(foreach dir,$(notdir $(wildcard $(AUDIO)/*.*)),$(CURDIR)/$(AUDIO)/$(dir)) - - # place the soundbank file in NitroFS if using it - ifneq ($(strip $(NITRO)),) - export SOUNDBANK := $(NITRO_FILES)/soundbank.bin - - # otherwise, needs to be loaded from memory - else - export SOUNDBANK := soundbank.bin - BINFILES += $(SOUNDBANK) - endif -endif - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES_BIN := $(addsuffix .o,$(BINFILES)) - -export OFILES_SOURCES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export OFILES := $(PNGFILES:.png=.o) $(OFILES_BIN) $(OFILES_SOURCES) - -export HFILES := $(PNGFILES:.png=.h) $(addsuffix .h,$(subst .,_,$(BINFILES))) - -export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir))\ - $(foreach dir,$(LIBDIRS),-I$(dir)/include)\ - -I$(CURDIR)/$(BUILD) -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -ifeq ($(strip $(ICON)),) - icons := $(wildcard *.bmp) - - ifneq (,$(findstring $(TARGET).bmp,$(icons))) - export GAME_ICON := $(CURDIR)/$(TARGET).bmp - else - ifneq (,$(findstring icon.bmp,$(icons))) - export GAME_ICON := $(CURDIR)/icon.bmp - endif - endif -else - ifeq ($(suffix $(ICON)), .grf) - export GAME_ICON := $(CURDIR)/$(ICON) - else - export GAME_ICON := $(CURDIR)/$(BUILD)/$(notdir $(basename $(ICON))).grf - endif -endif - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @mkdir -p $@ - @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(SOUNDBANK) - -#--------------------------------------------------------------------------------- -else - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).nds: $(OUTPUT).elf $(GAME_ICON) -$(OUTPUT).elf: $(OFILES) - -# source files depend on generated headers -$(OFILES_SOURCES) : $(HFILES) - -# need to build soundbank first -$(OFILES): $(SOUNDBANK) - -#--------------------------------------------------------------------------------- -# rule to build solution from music files -#--------------------------------------------------------------------------------- -$(SOUNDBANK) : $(MODFILES) -#--------------------------------------------------------------------------------- - mmutil $^ -d -o$@ -hsoundbank.h - -#--------------------------------------------------------------------------------- -%.bin.o %_bin.h : %.bin -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - -#--------------------------------------------------------------------------------- -# This rule creates assembly source files using grit -# grit takes an image file and a .grit describing how the file is to be processed -# add additional rules like this for each image extension -# you use in the graphics folders -#--------------------------------------------------------------------------------- -%.s %.h: %.png %.grit -#--------------------------------------------------------------------------------- - grit $< -fts -o$* - -#--------------------------------------------------------------------------------- -# Convert non-GRF game icon to GRF if needed -#--------------------------------------------------------------------------------- -$(GAME_ICON): $(notdir $(ICON)) -#--------------------------------------------------------------------------------- - @echo convert $(notdir $<) - @grit $< -g -gt -gB4 -gT FF00FF -m! -p -pe 16 -fh! -ftr - --include $(DEPSDIR)/*.d - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/examples/demos/a_lot_of_balls/data/cube.bin b/examples/demos/a_lot_of_balls/data/cube.bin deleted file mode 100644 index 4c2ca4a0c28afbbcc78210e133edb4ddc320b99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmY+AF%H5|3_}C@5{#WeLTY=7j`Svs9Eq`~LA^#7&VlWpruiVM%GiEMzGilR;?boa zUi$%$_tm;$W$f|3>ML!4K)X%Qrs^9;R226?i##Od8!z(cZ96qWQRnLU&xM?w&jvGS z;*&M$>zeq?%O^hb@HwCV9C`F=`sl1Dkhafn%a-`O06xps@Iwo}eBv{o`Qg?5j{Vh{ z`0z3RJ4vhib1Uf78a`&NTH^cs%4dFfo!@jiKi|(@kJz7H}&%*+!x6u@8$X%*nt9L zk)&9Rx_KvHCXwVa>W;ePpIvMfdalL?27WJ*q^y*$|0gCjP53MRrRSRbFY{ME{EG$8 z9UQ8Eq{;d}KgJFI^y2fw{8O=7%L?@aQ~yX4{NefMM=!1W12cc{JM<@}{*fm5kLO!o z;|3p?`Dc>grqDkz^^Y`{{GzAxiSJ*}+Wq}gKKyb2#MD31Wc@qadalMFo^yV`bM}u} z5fh0u!5_Td?&}2R4yFPfmezX2l-gWUFFx%fYeBXa++Wy-7pb7uk)Abv6I?Nxv0<-?rAKSaa zTJt?W)U^F~P595BClxYb{>!WZv;H&fU%yD0Ke5()&tKqceq59OmtABE{voULXYQY7 z#cIX=6Vv|N@jbtRA8YddZ}*VN&_A+1dt&}Hzn(Q>mS3-F1HON&13%UTe{gz-{HL5h za}CVqFOn4tO@P)!O#4?18xg+$Kkz;4fj^Ek;om>GLjKJ^d~1N&{1eH_3MkJl^Y1ln z!1t_EQ|pg3$-hVb&ELN@C-))$=7mi54QtK!tOmYj-8FgtH^{&DkE{(&Z$kdwzC@l7EH#v;Xj|Ip+RpF3k)3KQ~PKk80Y0?^zA}SQGr& z(H-*d{UcYv(7$HYvqsGF?=@|}UwuDJQ)-&vPak&i{>zzvB!HORf0T8c`!0WH4;{S! zYJ6beEACk(ww@ow@&0S_`F@JBigV`Q$j|g)f%jjH56t|dv&7c-cUUg){;TnUS^rU1 zh^_D6W7)y`uf_*v{!xC2t?!TGc>gu|d_PCKhI8n@xj(~l7w^9s9~k`Ov&8E2|Esh9 E4+DT~&Hw-a diff --git a/examples/demos/a_lot_of_balls/data/texcube.bin b/examples/demos/a_lot_of_balls/data/texcube.bin deleted file mode 100644 index f3629ecef43a2bef9c076018b4c113a75e2e3a8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmc&%L5{;P2+R|D>~r(Bex(oT3XMiUi~%Rhwe8;L z`QA?A2-aEz_wWNnm{%hp|MP9fS{9bo%AGR6e%p_ue~L%O<2sK5);4#M`}s#~(cUZy z@>_kMf5tT1w=9sa@MkQU&PH*bzhbELK7ZcBMkCe?~y<9v>sh~#Od&lUR}P?PO*6A^Y35QqW^thdSdsjjVe^bEqU_MIKq{kd@b~E|)ZiT0&Pb0-GP%S%n&l7C^E0c`oBr zl}m51jY;$xTO|vIyx#mhnaQ@wpU<|FUnGqH{Lp1+WIV?&5hDUf|Id%OadPsXb@{LS zf6f2f^C!FX*_HnL_5I^J(3$7&kDP|pcFJB$|d64S+le+ z6D@K)YWarcGjBJs@!n}>=RbdQUTVqDGiLP18S%l2zIV*v7u~1v zh@HqhY0hKCV{eVHl4kzcANzmIb%szei+=744fEza=AWbFG0fQ+S>At&o*}7~mvSHG zZ+&?G>>lMDjaE8W_N)9nv9UjtQ>BWXXskQuxclU! z{+$Rq5h_l%|HXrU8AGO{KW64{ceDQYcJU`upPiLFlfOg~F-3beYA-W?RvvR*f1(`O xj%(V@X4tRxzeTf*R<<^C86H0SZvBa>tZ_fkE}F@2b*uc^2mQK{?;d_e@CRD9X-ohB diff --git a/examples/demos/a_lot_of_balls/data/texsphere.bin b/examples/demos/a_lot_of_balls/data/texsphere.bin deleted file mode 100644 index e8b67afb81637786d34e196db4437c502865f5c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 BhXnut diff --git a/examples/demos/a_lot_of_balls/source/main.c b/examples/demos/a_lot_of_balls/source/main.c deleted file mode 100644 index eed8709..0000000 --- a/examples/demos/a_lot_of_balls/source/main.c +++ /dev/null @@ -1,239 +0,0 @@ -// SPDX-License-Identifier: MIT -// -// Copyright (c) 2008, Ti-Ra-Nog -// Copyright (c) 2008-2011, 2019, 2022 Antonio Niño Díaz -// -// This file is part of Nitro Engine - -// Nitro Engine NDS Benchmark by Ti-Ra-Nog - -#include - -#include - -#include "cube_bin.h" -#include "model_bin.h" -#include "texcube_bin.h" -#include "texsphere_bin.h" - -// Set the initial number of balls/spheres -#define NUM_BALLS 50 -// Set the maxium number of balls/spheres -#define MAX_NUM_BALLS 255 -// Set the minium number of balls/spheres -#define MIN_NUM_BALLS 0 - -int NUM = NUM_BALLS; - -NE_Camera *Camera; -NE_Model *Sphere[MAX_NUM_BALLS], *Cube; -NE_Material *Material, *Material2; - -float mov; - -typedef struct { - float x,y,z; - float vx,vy,vz; -} ball_t; - -ball_t Ball[MAX_NUM_BALLS]; - -void Draw3DScene(void) -{ - scanKeys(); // Refresh keypad - int keys = keysHeld(); // Keys continously pressed - - mov += 0.5; // If B is pressed, increase camera rotation speed - NE_CameraUse(Camera); //Use camera and draw all objects. - - // Rotate the camara every frame if the B Button is pressed (slowly) - if (!(keys & KEY_B)) - NE_ViewRotate(0, 0, mov); - - // Draw the cube - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_NONE, 0); - NE_ModelDraw(Cube); - - // Draw every Sphere - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_BACK, 0); - for (int i = 0; i < NUM; i++) - NE_ModelDraw(Sphere[i]); - - // Get some information AFTER drawing but BEFORE returning from the function - printf("\x1b[0;0HPolygon RAM: %d \nVertex RAM: %d ", - NE_GetPolygonCount(), NE_GetVertexCount()); -} - -int main(void) -{ - irqEnable(IRQ_HBLANK); - irqSet(IRQ_VBLANK, NE_VBLFunc); - irqSet(IRQ_HBLANK, NE_HBLFunc); - - // Init Nitro Engine 3D rendering in one screen. - NE_Init3D(); - // libnds uses VRAM_C for the text console, reserve A and B only - NE_TextureSystemReset(0, 0, NE_VRAM_AB); - // Init console in non-3D screen - consoleDemoInit(); - - // Allocate objects - Cube = NE_ModelCreate(NE_Static); // Cube model - Material = NE_MaterialCreate(); // Material for the cube - Material2 = NE_MaterialCreate(); // Material fot the spheres - - for (int i = 0; i < MAX_NUM_BALLS; i++) // Create all spheres - Sphere[i] = NE_ModelCreate(NE_Static); - - // Create and setup camera - Camera = NE_CameraCreate(); - NE_CameraSet(Camera, - 6, 6, 6, - 0, 0, 0, - 0, 1, 0); - - // Load sphere texture to its material - NE_MaterialTexLoad(Material2, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - (u8 *)texsphere_bin); - - // Loop until it arrives to the max ball number - for (int i = 0; i < MAX_NUM_BALLS; i++) - { - //Load every sphere model - NE_ModelLoadStaticMesh(Sphere[i], (u32 *)model_bin); - // Set Material2 to every Sphere - NE_ModelSetMaterial(Sphere[i],Material2); - } - - // Load cube texture to its material - NE_MaterialTexLoad(Material, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - (u8 *)texcube_bin); - // Load the cube mesh - NE_ModelLoadStaticMesh(Cube, (u32*)cube_bin); - // Set the cube material - NE_ModelSetMaterial(Cube, Material); - // Resize the cube (it's originally 7x7x7, now it's 21x21x21) - NE_ModelScale(Cube, 3, 3, 3); - - // Set up the white light - NE_LightSet(0, NE_White, 0, 1, 0); - - //Enable shading - NE_ShadingEnable(true); - - // Set cube coordinates to (0, 0, 0) - NE_ModelSetCoord(Cube, 0, 0, 0); - - // Set start coordinates/rotation for models using random formules... - for (int i = 0; i < MAX_NUM_BALLS; i++) - { - // Set the speed for each axis - Ball[i].vx = (float)(1 + ((float)(rand() % 10) / 10)) / 10; - Ball[i].vy = (float)(1 + ((float)(rand() % 10) / 10)) / 10; - Ball[i].vz = (float)(1 + ((float)(rand() % 10) / 10)) / 10; - - // Randomly invert the speeds - if (rand() & 1) - Ball[i].vx *= -1; - if (rand() & 1) - Ball[i].vy *= -1; - if (rand() & 1) - Ball[i].vz *= -1; - } - - // Initialize some variables - int fpscount = 0; - int oldsec = 0; - int seconds = 0; - - while (1) - { - // Time Variables/Structs - time_t unixTime = time(NULL); - struct tm* timeStruct = gmtime((const time_t *)&unixTime); - seconds = timeStruct->tm_sec; - - // Have we moved to a new second? - if (seconds != oldsec) - { - oldsec = seconds; // old second = new second - printf("\x1b[0;20HFPS: %d", fpscount); - fpscount = 0; // Reset FPS count for next second - } - - // Get keys information - scanKeys(); - uint32 keys = keysHeld(); // Keys Continously pressed - uint32 keysd = keysDown(); // Keys NOW pressed (only this frame) - - // Set the model rotation for every Sphere - for (int i = 0; i < NUM; i++) - NE_ModelRotate(Sphere[i], 25 / i, -25 / i, 25 / i); - - // Calculate the model position for every model - for (int i = 0; i < NUM; i++) - { - // If the ball crashes with one of the faces of the cube - // invert the speed of the corresponding axis. - if ((Ball[i].x >= 10.5) || (Ball[i].x <= -10.5)) - Ball[i].vx *= -1; - if ((Ball[i].y >= 9.5) || (Ball[i].y <= -9.0)) - Ball[i].vy *= -1; - if ((Ball[i].z >= 10.5) || (Ball[i].z <= -10.5)) - Ball[i].vz *= -1; - - // Add speed to the position to calculate the new - // position - Ball[i].x += Ball[i].vx; - Ball[i].y += Ball[i].vy; - Ball[i].z += Ball[i].vz; - - // Update position - NE_ModelSetCoord(Sphere[i], Ball[i].x, Ball[i].y, Ball[i].z); - } - - // Set all balls to (0, 0, 0) position. - if (keys & KEY_Y) - { - for (int i = 0; i < NUM; i++) - { - Ball[i].x = 0; - Ball[i].y = 0; - Ball[i].z = 0; - } - } - - printf("\x1b[3;0HPolygon count: %d ", NUM * 48); - - printf("\x1b[6;0HUp: Increase Ball Number."); - printf("\x1b[7;0HDown: Decrease Ball Number."); - printf("\x1b[8;0HR: Increase Ball Number by one."); - printf("\x1b[9;0HL: Decrease Ball Number by one."); - printf("\x1b[10;0HB: Stop camera rotation."); - printf("\x1b[11;0HY: Set all balls to 0 position."); - - // Draw scene - NE_Process(Draw3DScene); - - // Press UP: Increase the balls number - if ((keys & KEY_UP) && (NUM != MAX_NUM_BALLS)) - NUM++; - // Press DOWN: Decrease the balls number - if ((keys & KEY_DOWN) && (NUM != MIN_NUM_BALLS)) - NUM--; - // Press R: Increase the balls number by one - if ((keysd & KEY_R) && (NUM != MAX_NUM_BALLS)) - NUM++; - // Press L: Decrease the balls number by one - if ((keysd & KEY_L) && (NUM != MIN_NUM_BALLS)) - NUM--; - - printf("\x1b[2;0HBalls Number: %d ", NUM); - - // Wait for next frame - NE_WaitForVBL(0); - fpscount++; // Increase the fps count - } - - return 0; -} diff --git a/examples/demos/ti-ra-nog_3d_test/Makefile b/examples/demos/ti-ra-nog_3d_test/Makefile deleted file mode 100644 index ee05e05..0000000 --- a/examples/demos/ti-ra-nog_3d_test/Makefile +++ /dev/null @@ -1,220 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -# DATA is a list of directories containing binary files embedded using bin2o -# GRAPHICS is a list of directories containing image files to be converted with grit -# AUDIO is a list of directories containing audio to be converted by maxmod -# ICON is the image used to create the game icon, leave blank to use default rule -# NITRO is a directory that will be accessible via NitroFS -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -INCLUDES := include -DATA := data -GRAPHICS := -AUDIO := -ICON := - -# specify a directory which contains the nitro filesystem -# this is relative to the Makefile -NITRO := - -# These set the information text in the nds file -GAME_TITLE := Nitro Engine example -GAME_SUBTITLE1 := built with devkitARM -GAME_SUBTITLE2 := http://devitpro.org - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -marm -mthumb-interwork -march=armv5te -mtune=arm946e-s - -CFLAGS := -g -Wall -O3\ - $(ARCH) $(INCLUDE) -DARM9 -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project (order is important) -#--------------------------------------------------------------------------------- -LIBS := -lNE -lfat -lnds9 - -# automatigically add libraries for NitroFS -ifneq ($(strip $(NITRO)),) -LIBS := -lfilesystem -lfat $(LIBS) -endif -# automagically add maxmod library -ifneq ($(strip $(AUDIO)),) -LIBS := -lmm9 $(LIBS) -endif - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) $(PORTLIBS) $(DEVKITPRO)/nitro-engine - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(CURDIR)/$(subst /,,$(dir $(ICON)))\ - $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))\ - $(foreach dir,$(DATA),$(CURDIR)/$(dir))\ - $(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -# prepare NitroFS directory -ifneq ($(strip $(NITRO)),) - export NITRO_FILES := $(CURDIR)/$(NITRO) -endif - -# get audio list for maxmod -ifneq ($(strip $(AUDIO)),) - export MODFILES := $(foreach dir,$(notdir $(wildcard $(AUDIO)/*.*)),$(CURDIR)/$(AUDIO)/$(dir)) - - # place the soundbank file in NitroFS if using it - ifneq ($(strip $(NITRO)),) - export SOUNDBANK := $(NITRO_FILES)/soundbank.bin - - # otherwise, needs to be loaded from memory - else - export SOUNDBANK := soundbank.bin - BINFILES += $(SOUNDBANK) - endif -endif - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES_BIN := $(addsuffix .o,$(BINFILES)) - -export OFILES_SOURCES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export OFILES := $(PNGFILES:.png=.o) $(OFILES_BIN) $(OFILES_SOURCES) - -export HFILES := $(PNGFILES:.png=.h) $(addsuffix .h,$(subst .,_,$(BINFILES))) - -export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir))\ - $(foreach dir,$(LIBDIRS),-I$(dir)/include)\ - -I$(CURDIR)/$(BUILD) -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -ifeq ($(strip $(ICON)),) - icons := $(wildcard *.bmp) - - ifneq (,$(findstring $(TARGET).bmp,$(icons))) - export GAME_ICON := $(CURDIR)/$(TARGET).bmp - else - ifneq (,$(findstring icon.bmp,$(icons))) - export GAME_ICON := $(CURDIR)/icon.bmp - endif - endif -else - ifeq ($(suffix $(ICON)), .grf) - export GAME_ICON := $(CURDIR)/$(ICON) - else - export GAME_ICON := $(CURDIR)/$(BUILD)/$(notdir $(basename $(ICON))).grf - endif -endif - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @mkdir -p $@ - @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(SOUNDBANK) - -#--------------------------------------------------------------------------------- -else - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).nds: $(OUTPUT).elf $(GAME_ICON) -$(OUTPUT).elf: $(OFILES) - -# source files depend on generated headers -$(OFILES_SOURCES) : $(HFILES) - -# need to build soundbank first -$(OFILES): $(SOUNDBANK) - -#--------------------------------------------------------------------------------- -# rule to build solution from music files -#--------------------------------------------------------------------------------- -$(SOUNDBANK) : $(MODFILES) -#--------------------------------------------------------------------------------- - mmutil $^ -d -o$@ -hsoundbank.h - -#--------------------------------------------------------------------------------- -%.bin.o %_bin.h : %.bin -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - -#--------------------------------------------------------------------------------- -# This rule creates assembly source files using grit -# grit takes an image file and a .grit describing how the file is to be processed -# add additional rules like this for each image extension -# you use in the graphics folders -#--------------------------------------------------------------------------------- -%.s %.h: %.png %.grit -#--------------------------------------------------------------------------------- - grit $< -fts -o$* - -#--------------------------------------------------------------------------------- -# Convert non-GRF game icon to GRF if needed -#--------------------------------------------------------------------------------- -$(GAME_ICON): $(notdir $(ICON)) -#--------------------------------------------------------------------------------- - @echo convert $(notdir $<) - @grit $< -g -gt -gB4 -gT FF00FF -m! -p -pe 16 -fh! -ftr - --include $(DEPSDIR)/*.d - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/examples/demos/ti-ra-nog_3d_test/data/cube.bin b/examples/demos/ti-ra-nog_3d_test/data/cube.bin deleted file mode 100644 index 4c2ca4a0c28afbbcc78210e133edb4ddc320b99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmY+AF%H5|3_}C@5{#WeLTY=7j`Svs9Eq`~LA^#7&VlWpruiVM%GiEMzGilR;?boa zUi$%$_tm;$W$f|3>ML!4K)X%Qrs^9;R226?i##Od8!z(cZ96qWQRnLU&xM?w&jvGS z;*&M$>zeq?%O^hb@HwCV9C`F=`sl1Dkhafn%a-`O06xps@Iwo}eBv{o`Qg?5j{Vh{ z`0z3RJ4vhib1Uf78a`&NTH^cs%4dFfo!@jiKi|(@kJz7HwyK zV|+09eTnT}c51&=G;ZcuQpgE^VP{I>iuz#iTNUO1{-4Idk8`U2#jqv$7en|x z;Zy(Y7xclBLQXyZ?0IjDf4nn$4!@r2S%19b{9s8TC;Z0t?0G#c>Vv`0h5s&9eZ{1I zQBL?9+ZV%pj1LCCFR`6!r^fjelm10H;U8>E|Hk-W@LQSk>AzyqzbL2bKdiN~V*MN2 zdVf9PQ$P2wnDj5osptQAuQ$eTZ0r1d$&RjPMKS4LloS5?Z`H@ll$3iN3l{p9{85ql zNx!dY9R05gCi9oRp3?cdo$vFjIhjAtiT>f%>V4)MeVcW#(0_?N8g$YZ(qF|U<@@{_ zzaQm9e_^W{W*U9l6|iuB71jT9q;Z^oGJdo_At&?iIraRzXY85jGi!%iyJzV4B$odF zGc;^czVDyrWPd#8)%~Bar`CUVRqpBp{d%f*{nNm(N%_9Nnv?zWoan#mR!`VT^zk)z z9Sr?kVrBor`4yX#@B453I4An^o4aT1H2UThVCeTnzd6-Oxqrpjf3K;W@BU%@I4Asr zO_{$dee)VH^jn$gGyjU=A6`>AKk}cD6aVm>TL0>OJcaY4k5|oa>i+d4mj1K)w{<376XR=c}?Yf_d4UpIpOaoZ$9IR=rez4 zfuWy^ey6JER}BC2n#%d^RmP8V27aY^il?D(Ub`RL*y=Gk%;?>wo(IPc(hB_A9!7J<+HC?7w38pVw5* zcds&joHOu~mrw9C^v!Gc1>^kd**Di-qZt0@HI?yWuQPs}6aMWy-IW9U!GIz-;?*Bo*#X7?J(cFdjIKJ zd6OwNDc`-y_&w3*PRWVB+>5;by#M$g80W92de^+k6vO`};k#EEKhBB%tJP_F|EWIn zhyQ_v`4jzjsn)6({^vE7^WCeApGP_2&#&#t`%m@FYr(?&NvvQ)?q4zd&uc2@yH^>% zALWF9uqN|&rEgvf7UnNg{qXxSVECWcRL*y=(wz90=hXV!^8VBFqmTd1uj&5vB$ocO z|B6k@cds&joD+Sy7kU4A|M6Nd&i_O9EB+U}Mlt-)YbxW%UT6F`C;a1;Pkeu=vj5fO z&LDh$5e)s<>xkp`-?;y@S03^GrN9S+AIB>875`YdE1pv1F9-%d_8P@*?tgn_!1tFi z{lO4^>@~zu|M>nMuRQ1bOMwptKaN%G=KeL7pY#2tzz2gL@2X-q_h(~y!1tE|9}IrH zYl?kk{+FeHWBdcb;K#e7*vzP}XsV4;6etYS%F Jrsw3l+y8o=L4yDQ diff --git a/examples/demos/ti-ra-nog_3d_test/data/sphere1.bin b/examples/demos/ti-ra-nog_3d_test/data/sphere1.bin deleted file mode 100644 index 2dea32b9beaae7469689fc7bb10bd7892451cdf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 zcmb7GyGm}&%*+!x6u@8$X%*nt9L zk)&9Rx_KvHCXwVa>W;ePpIvMfdalL?27WJ*q^y*$|0gCjP53MRrRSRbFY{ME{EG$8 z9UQ8Eq{;d}KgJFI^y2fw{8O=7%L?@aQ~yX4{NefMM=!1W12cc{JM<@}{*fm5kLO!o z;|3p?`Dc>grqDkz^^Y`{{GzAxiSJ*}+Wq}gKKyb2#MD31Wc@qadalMFo^yV`bM}u} z5fh0u!5_Td?&}2R4yFPfmezX2l-gWUFFx%fYeBXa++Wy-7pb7uk)Abv6I?Nxv0<-?rAKSaa zTJt?W)U^F~P595BClxYb{>!WZv;H&fU%yD0Ke5()&tKqceq59OmtABE{voULXYQY7 z#cIX=6Vv|N@jbtRA8YddZ}*VN&_A+1dt&}Hzn(Q>mS3-F1HON&13%UTe{gz-{HL5h za}CVqFOn4tO@P)!O#4?18xg+$Kkz;4fj^Ek;om>GLjKJ^d~1N&{1eH_3MkJl^Y1ln z!1t_EQ|pg3$-hVb&ELN@C-))$=7mi54QtK!tOmYj-8FgtH^{&DkE{(&Z$kdwzC@l7EH#v;Xj|Ip+RpF3k)3KQ~PKk80Y0?^zA}SQGr& z(H-*d{UcYv(7$HYvqsGF?=@|}UwuDJQ)-&vPak&i{>zzvB!HORf0T8c`!0WH4;{S! zYJ6beEACk(ww@ow@&0S_`F@JBigV`Q$j|g)f%jjH56t|dv&7c-cUUg){;TnUS^rU1 zh^_D6W7)y`uf_*v{!xC2t?!TGc>gu|d_PCKhI8n@xj(~l7w^9s9~k`Ov&8E2|Esh9 E4+DT~&Hw-a diff --git a/examples/demos/ti-ra-nog_3d_test/data/texcube.bin b/examples/demos/ti-ra-nog_3d_test/data/texcube.bin deleted file mode 100644 index f3629ecef43a2bef9c076018b4c113a75e2e3a8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmc&%L5{;P2+R|D>~r(Bex(oT3XMiUi~%Rhwe8;L z`QA?A2-aEz_wWNnm{%hp|MP9fS{9bo%AGR6e%p_ue~L%O<2sK5);4#M`}s#~(cUZy z@>_kMf5tT1w=9sa@MkQU&PH*bzhbELK7ZcBMkCe?~y<9v>sh~#Od&lUR}P?PO*6A^Y35QqW^thdSdsjjVe^bEqU_MIKq{kd@b~E|)ZiT0&Pb0-GP%S%n&l7C^E0c`oBr zl}m51jY;$xTO|vIyx#mhnaQ@wpU<|FUnGqH{Lp1+WIV?&5hDUf|Id%OadPsXb@{LS zf6f2f^C!FX*_HnL_5I^J(3$7&kDP|pcFJB$|d64S+le+ z6D@K)YWarcGjBJs@!n}>=RbdQUTVqDGiLP18S%l2zIV*v7u~1v zh@HqhY0hKCV{eVHl4kzcANzmIb%szei+=744fEza=AWbFG0fQ+S>At&o*}7~mvSHG zZ+&?G>>lMDjaE8W_N)9nv9UjtQ>BWXXskQuxclU! z{+$Rq5h_l%|HXrU8AGO{KW64{ceDQYcJU`upPiLFlfOg~F-3beYA-W?RvvR*f1(`O xj%(V@X4tRxzeTf*R<<^C86H0SZvBa>tZ_fkE}F@2b*uc^2mQK{?;d_e@CRD9X-ohB diff --git a/examples/demos/ti-ra-nog_3d_test/data/texsphere.bin b/examples/demos/ti-ra-nog_3d_test/data/texsphere.bin deleted file mode 100644 index e8b67afb81637786d34e196db4437c502865f5c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 BhXnut diff --git a/examples/demos/ti-ra-nog_3d_test/readme.txt b/examples/demos/ti-ra-nog_3d_test/readme.txt deleted file mode 100644 index 34fd91f..0000000 --- a/examples/demos/ti-ra-nog_3d_test/readme.txt +++ /dev/null @@ -1,32 +0,0 @@ -Nitro Engine POC 3D Test by Ti-Ra-Nog -------------------------------------- - -If you want to enable the FAT mesh and/or texture reading, first uncomment the -line: "#define FAT_MESH_TEXT" and then compile it. - -After you have the binary file with the FAT texture/mesh reading enabled, copy -this files to the root of your card or put them in the same folder where the nds -is for test it on an emulator (with fat support). - -In orther to use the screenshot or "video" recording function you need to -enable the FAT access to your card, if you have a new card reader for nds you -may no need to patch it, but if you have an older one may you need to patch the -binary file with DLDI patch for you card reader. - -In the binary folder there are three files, one no patched binary and two -patched for R4 and Super card SD. - -For making screenshots you need to create the "/screen" folder in the root -directory of your card and then the screens should be there. - -The "video" recording function make one screenshot per VBL and save it in to the -video flother that you need to create in the root of the memory (i whasn't able -to create the directory if it doesn't exist). When you push the "R" button the -ds will make one screnshot for every vbl and you'll see the screen blinking and -making some strange with the scenes, don't worry, the screenshots will be ok. -The video will be recorded to "/video/vid". - -When you have finished the the "video" recording you'll need to make a animated -gif or avi video with some software. - -So, that's all, I think that you'll love this Engine :D diff --git a/examples/demos/ti-ra-nog_3d_test/sd_card_data/cube.bin b/examples/demos/ti-ra-nog_3d_test/sd_card_data/cube.bin deleted file mode 100644 index 4c2ca4a0c28afbbcc78210e133edb4ddc320b99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmY+AF%H5|3_}C@5{#WeLTY=7j`Svs9Eq`~LA^#7&VlWpruiVM%GiEMzGilR;?boa zUi$%$_tm;$W$f|3>ML!4K)X%Qrs^9;R226?i##Od8!z(cZ96qWQRnLU&xM?w&jvGS z;*&M$>zeq?%O^hb@HwCV9C`F=`sl1Dkhafn%a-`O06xps@Iwo}eBv{o`Qg?5j{Vh{ z`0z3RJ4vhib1Uf78a`&NTH^cs%4dFfo!@jiKi|(@kJz7HwyK zV|+09eTnT}c51&=G;ZcuQpgE^VP{I>iuz#iTNUO1{-4Idk8`U2#jqv$7en|x z;Zy(Y7xclBLQXyZ?0IjDf4nn$4!@r2S%19b{9s8TC;Z0t?0G#c>Vv`0h5s&9eZ{1I zQBL?9+ZV%pj1LCCFR`6!r^fjelm10H;U8>E|Hk-W@LQSk>AzyqzbL2bKdiN~V*MN2 zdVf9PQ$P2wnDj5osptQAuQ$eTZ0r1d$&RjPMKS4LloS5?Z`H@ll$3iN3l{p9{85ql zNx!dY9R05gCi9oRp3?cdo$vFjIhjAtiT>f%>V4)MeVcW#(0_?N8g$YZ(qF|U<@@{_ zzaQm9e_^W{W*U9l6|iuB71jT9q;Z^oGJdo_At&?iIraRzXY85jGi!%iyJzV4B$odF zGc;^czVDyrWPd#8)%~Bar`CUVRqpBp{d%f*{nNm(N%_9Nnv?zWoan#mR!`VT^zk)z z9Sr?kVrBor`4yX#@B453I4An^o4aT1H2UThVCeTnzd6-Oxqrpjf3K;W@BU%@I4Asr zO_{$dee)VH^jn$gGyjU=A6`>AKk}cD6aVm>TL0>OJcaY4k5|oa>i+d4mj1K)w{<376XR=c}?Yf_d4UpIpOaoZ$9IR=rez4 zfuWy^ey6JER}BC2n#%d^RmP8V27aY^il?D(Ub`RL*y=Gk%;?>wo(IPc(hB_A9!7J<+HC?7w38pVw5* zcds&joHOu~mrw9C^v!Gc1>^kd**Di-qZt0@HI?yWuQPs}6aMWy-IW9U!GIz-;?*Bo*#X7?J(cFdjIKJ zd6OwNDc`-y_&w3*PRWVB+>5;by#M$g80W92de^+k6vO`};k#EEKhBB%tJP_F|EWIn zhyQ_v`4jzjsn)6({^vE7^WCeApGP_2&#&#t`%m@FYr(?&NvvQ)?q4zd&uc2@yH^>% zALWF9uqN|&rEgvf7UnNg{qXxSVECWcRL*y=(wz90=hXV!^8VBFqmTd1uj&5vB$ocO z|B6k@cds&joD+Sy7kU4A|M6Nd&i_O9EB+U}Mlt-)YbxW%UT6F`C;a1;Pkeu=vj5fO z&LDh$5e)s<>xkp`-?;y@S03^GrN9S+AIB>875`YdE1pv1F9-%d_8P@*?tgn_!1tFi z{lO4^>@~zu|M>nMuRQ1bOMwptKaN%G=KeL7pY#2tzz2gL@2X-q_h(~y!1tE|9}IrH zYl?kk{+FeHWBdcb;K#e7*vzP}XsV4;6etYS%F Jrsw3l+y8o=L4yDQ diff --git a/examples/demos/ti-ra-nog_3d_test/sd_card_data/sphere1.bin b/examples/demos/ti-ra-nog_3d_test/sd_card_data/sphere1.bin deleted file mode 100644 index 2dea32b9beaae7469689fc7bb10bd7892451cdf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 zcmb7GyGm}&%*+!x6u@8$X%*nt9L zk)&9Rx_KvHCXwVa>W;ePpIvMfdalL?27WJ*q^y*$|0gCjP53MRrRSRbFY{ME{EG$8 z9UQ8Eq{;d}KgJFI^y2fw{8O=7%L?@aQ~yX4{NefMM=!1W12cc{JM<@}{*fm5kLO!o z;|3p?`Dc>grqDkz^^Y`{{GzAxiSJ*}+Wq}gKKyb2#MD31Wc@qadalMFo^yV`bM}u} z5fh0u!5_Td?&}2R4yFPfmezX2l-gWUFFx%fYeBXa++Wy-7pb7uk)Abv6I?Nxv0<-?rAKSaa zTJt?W)U^F~P595BClxYb{>!WZv;H&fU%yD0Ke5()&tKqceq59OmtABE{voULXYQY7 z#cIX=6Vv|N@jbtRA8YddZ}*VN&_A+1dt&}Hzn(Q>mS3-F1HON&13%UTe{gz-{HL5h za}CVqFOn4tO@P)!O#4?18xg+$Kkz;4fj^Ek;om>GLjKJ^d~1N&{1eH_3MkJl^Y1ln z!1t_EQ|pg3$-hVb&ELN@C-))$=7mi54QtK!tOmYj-8FgtH^{&DkE{(&Z$kdwzC@l7EH#v;Xj|Ip+RpF3k)3KQ~PKk80Y0?^zA}SQGr& z(H-*d{UcYv(7$HYvqsGF?=@|}UwuDJQ)-&vPak&i{>zzvB!HORf0T8c`!0WH4;{S! zYJ6beEACk(ww@ow@&0S_`F@JBigV`Q$j|g)f%jjH56t|dv&7c-cUUg){;TnUS^rU1 zh^_D6W7)y`uf_*v{!xC2t?!TGc>gu|d_PCKhI8n@xj(~l7w^9s9~k`Ov&8E2|Esh9 E4+DT~&Hw-a diff --git a/examples/demos/ti-ra-nog_3d_test/sd_card_data/texcube.bin b/examples/demos/ti-ra-nog_3d_test/sd_card_data/texcube.bin deleted file mode 100644 index f3629ecef43a2bef9c076018b4c113a75e2e3a8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmc&%L5{;P2+R|D>~r(Bex(oT3XMiUi~%Rhwe8;L z`QA?A2-aEz_wWNnm{%hp|MP9fS{9bo%AGR6e%p_ue~L%O<2sK5);4#M`}s#~(cUZy z@>_kMf5tT1w=9sa@MkQU&PH*bzhbELK7ZcBMkCe?~y<9v>sh~#Od&lUR}P?PO*6A^Y35QqW^thdSdsjjVe^bEqU_MIKq{kd@b~E|)ZiT0&Pb0-GP%S%n&l7C^E0c`oBr zl}m51jY;$xTO|vIyx#mhnaQ@wpU<|FUnGqH{Lp1+WIV?&5hDUf|Id%OadPsXb@{LS zf6f2f^C!FX*_HnL_5I^J(3$7&kDP|pcFJB$|d64S+le+ z6D@K)YWarcGjBJs@!n}>=RbdQUTVqDGiLP18S%l2zIV*v7u~1v zh@HqhY0hKCV{eVHl4kzcANzmIb%szei+=744fEza=AWbFG0fQ+S>At&o*}7~mvSHG zZ+&?G>>lMDjaE8W_N)9nv9UjtQ>BWXXskQuxclU! z{+$Rq5h_l%|HXrU8AGO{KW64{ceDQYcJU`upPiLFlfOg~F-3beYA-W?RvvR*f1(`O xj%(V@X4tRxzeTf*R<<^C86H0SZvBa>tZ_fkE}F@2b*uc^2mQK{?;d_e@CRD9X-ohB diff --git a/examples/demos/ti-ra-nog_3d_test/sd_card_data/texsphere.bin b/examples/demos/ti-ra-nog_3d_test/sd_card_data/texsphere.bin deleted file mode 100644 index e8b67afb81637786d34e196db4437c502865f5c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmY*;3s@6px_^7#DuP_RZmqk0&e?OG|Du3*ZL8hxZugv1TEM$)Pj|a} zwmrK$kPAVBf`A51+5{3vfS>`R2FoQt0zm=>4L0ZmCNL8+KoF2?GV}f43AU#v?~{bg z4D)+$-}k=nZ+I9F;|V~-JV~@9E5Ed;wTP6GGBSTyJS-WKgcXDpgch$a#-wR7Ook~G zn!!5?gF-*3Rg@={4VGi&(U+Qw6(tHerc6`w)R+RUk~OO`453=LYDm?pXj6nMkEuJf zn`#c!=GFH!-naC2KkS`#{n+!xgv$@;SPOQDKgB=Fe<5oP7KKG(p`1?DyukNm9Qo1G z>q+)%?)u+J|-_e_HtLgfbhR>d-9rn+6bvF3EGoPcx^?5t5*S>SEPdF<$BG@NbFaF@h2a5GK*56#O z;mLR!-m}@D3YA6d=akr85VtY;sLHjd0&cN#m>)eZ}^Ag zUooEfe*^>A_)T5QI;`*Od(2vKnXJrEThx)2r)sKeZMS^&6D@Yj z1IU6$u5|2B_QkAlxOW-Y&+^~TdWKZg&m=#U@BleH@Iu!s3hu8+Y(Ow3{75)FH;aC) zU8jA&``1_{^#_51t+kCRK9?jFyf2=+GSKi8)v${kzG<+U)1Vpf2}O)DU9DDA+QiE9 zK@GYa@3-hJb=`)(R%{~sGJl%?Q*46&`YaEWn=5PTK2}nl-6;L{&PCNv)N1y9u>vg`+KvArerw=;$-)D< zab$F2VjeP}%E~i>2AXE@z@Q>Txl5U@RH><83}79=O1$2f-|}f^ivH}Qh3g0{AX)xT zr98%e4>kX3Sg@?aG++KqNZxZ@_)>z5JykPT{-*R(wYH*bsW1fYRO zy|Hpr&E}ddwTJ4rHCl|LXog!cb!pkWfQAWyl|G0rfy>OHHLCo2>6@^q4HRHiab-9qZF&f>Rjz9T}n{~ zh@gmHlns&vf)y#GAW%by8=;2ShGcVwP3Wj_3Y{W6hsYtc1WjzER#T&-)hi}*iPe-A zA0xI=Td7WR%$q}qa3L;q3LOG_hBeb%VGiXyplFsgO9!QdEL0vQ-yn~Z?@{hiCaO1T zGo=|)fmBt*la@(KrAhFukYds#MUo2BG;7wI)2-=tfm4WE$=zgxH(`A5xNcHMo^04>7<-N-pzX!ccxwc2lm%KW;q3c70Q z?pTFqE}r!SsG!6%hsGZ?^w$L*^gX`RU+wI1?$stNlzT^5FM0+wv-wU8Qg}r3u_}ZqvYm3(&UdzAbHLSI4YdNPoF`3IAL{n%M z@M9Z7^#nvfA>%xoCCvum2l0inV;sK1A`4ZFo#*UN$nx{U;5(K{4upWDTQ?LWOI5OP zC8eMZQ}ljkMWd)Q^_u6}*wAq{kx67uPVSre#QU=R_ho(R*K}3d>-9Il?q`5JgM8>7 z8u~i9A=KcmHbDe94`e;}fJ$bTl>>T(%AznU!UUpVC*r{Z{B#Way2Vc2NPiM`bMN`c z3W1cAAFoMlS!0p74>A?*_Q0mzvkyLcWbM;3xikBj`^;OuLdP3T)7sZcqrRH_%6IXZ zX9n=EqfvGvn`}x6u7O|#f*J%PAX~z(P*tefRg`L(AOmr$(1Q8-;aQlYxw``&E?IUp z;@akR_0`C-#Hy$!Tlen%Ew0>}95S-XRyJ8RHrH8S)#xq1%kKSZr2ZebIx1!5r^@E8 zjeX@slV}X3q7=4`$>i|C14}u`tt+LhR8}TylbID3u)ba63F60~;Ub=(T`-SQ*$|c} zUEWiv*c-OZHHTXhnK(C{_i@>XS6h3A(X%@Lrn*&+qx#X~Elq2hZq?A0 zMW)312i@m7&M~Lhr$~&vpv5v%hB>(*jEex5gR&+3R#_W(-2>bV;st(Oa^>Qt#*&tT1 zqpVoHMf7G))j$v1QBRgUydPIub#Kx?*0}O+4LZ?izA73Yy+xPW2F^Y{c)N(b$Q-Jx zd$gqowf~@Qdf?v7=DJh89eva23`!4Z&gt!&?5#~~_s(d1*Sn88McS06YR~BhlXDlR+dIwP<;;q{zUxot-t3w5 zJJ<`1z4hbv-f1*iJoF5$Vyh?5cUG}eXdJC(X8?T>>X09Wn1lG=MF93e=m=XC!w~i5 z+L7uN`sKQCU8Y3APC~{W>|JI)S6SXw#{3-RT8AVRXcX=@iB6$0wmp!*NSKB8>FH@$ z*}p{H%-gL;2B3D%EkL$Uz;y@FA-MJ_VEfTLTAW^-n@1b0nbr(*N<*w6xC=lx!gXY= zs$mtWS*~57+oVg>Mreg%0yLjQTN}%}4rQ&lX&F1r?so}<6k~<^P9c)+n5|^I>^;`O z-h%s2p(2#e&fIgj3@iiv!#o`0G#H1^3A76Ixyb$o)q@X?*`DJ=9fAx{arT=OLtuY| zI+DXzC#vI>%amo3G)ah9@n5-rO8v_Hd)F(jmt8Z2gS<&zf^*x5DBSyv`eCB;oO7G|xIM?72~}t*146XH zIwT`xL$YPc2&g}s)CZLNY-m%)P zb$*MVY>d%|XrT|_s-QHiWLZhPe6M`J@=VFel0C(7#bL!E#e+p~R>sqY>SFadrX1^W z+iv@D`xtQoC%;+l+)tbd;!k^jM7=@%*8REb3)eN*RaXh%|CagSmD^2Y;PZFE05?trKPX3X;H1&?V*mv3YlZk%X=)2Qzbk|cQ zQ-7X1+PAh}=QwTK=vdj%amVuY`SBWWJDKCwxXaDS#$EatZM2+M99^)hAf@0~fw-Wm zpr+tYqBliRqDYZhSemQI9TfAh6ZxBp^Cn+Iy{LC?vUalJoyN75RTA2ot30Q#(s$WE z>AN`lHa*2o&EB4Kvak4e4DFcS;rRu6&;K8{|91Di+iz4&SzdV5ZQ0L$%>EavVJl!C zOz2HFrt3e{CdtzZ(sHwN)wv_NQKD_4Bj<`mpJX2tC5lL4i?CV9;U5!dq+{dxfL}ZP zc5S}lNXxdCD0!#(lvXTZN=BQnV%e6H!t2>*v;-qjTGHRiG7? z$Kji^_65WNG1JB7BOiHI{noAhjbepZcS5<+5>>yIUDNnl-}b&8Xvg%skN^2Ghd;v> zvVWr9>wdMh@vi^&Ox;w|f3;qy@j2`*)7>lCMA!?%dozOe@02G6?N*pZ; zdEdo9Pa)-L;;K$zolh(eI~0@K;Bmfq{ELm$&W?El35g8S3C9n>r` zOc`87Q@=w;`fJ&rLk?DXFT4MS{`N@L^u^s@O&I;RQSah))Pqjq8*_I z|8}=w>Qe73zSrH;sF3<>Zf4d1zW*O|#C>FTyL-*z1ik{+N9nfF1ZD+l$^t z2m5I&ZMHU4=rh#oi`NNiy&FF046SA1H&uVhb2TnV@SAp5_@0%fSGkiN8Ao&dX? z8ur}7>?q6=A39c{7f}~pFm<%?sOu>?gFdBxG=0neng8{v2LGq@5#LkNjt=!r&iWCH z*a61R_V|PNJ##%MvOC3?Vu;nns6$`{aO*FwIH81Fe@puh;B)&=eo_OEX@Pv%JH4Ub zjO?f^u$(!>jsgB~M-DSGc)%A$J%D}Pha>bh^#m2tvuKh)=r#B3)LQr2(Qigai6H;c z1po3F-cSj+o!MiHHT>`XpZtIv_FpCJztEKvvgV@D#w5lK>qU&zh(w3c z2{xWt1$`VsA0e+(Lg%9Mi#KYeoL$^% zQSR@BU=j!-XC4#AYJknU+2W(ed#6rhu+6JobD zSW^&s%RdKIWejwg^DmK1T-})sz8R=9+>3#CASg6@9r}+Mz-K^MG!FPnU2rqZL2lU) za8lg@ERD?c(yb1u`Gq7jr#R4|h=gtKY zpC5ewH4lDY09@|nhif8xL%+l4>VL5QX}S96y%EF*rmh8QW0*F>m}D$9m65r)`uBiSMeUZJHrdWeJIE8T47y1vV|CA#ZKCj?_|`VGbY8aQ&e|VbZv( zxydiZoMKId3RvkJ!^0hI-*}!R5hB>wYrqHDs0Or8&@Kuq}{{-Dv6lSE#c=lI$^?%cal#Mh>c+3k_LLR z&ilaIOWMI3lVlzt0rb;kA`tlOD zZO{+5KxZ8EKX?Fo5Iu*VVa~K=+C>iV042u5!LkHm9|0QRdBjDsz^nIy--!$OQ}D`Z zIFktPaIn4;CUlKcUaui;ZzQlVWN5g6R*Y zuX33Fa#ZCUKFotbe2)2m87;U5Zp0dsgAw5HE1Vj98{J9n1_VHICO8uz7bN6HVjrI9 zOvF!daVO%4W59>JNo&A*wL=ZwPl4=T%6*e!gEm|X_|mfH(`UINM|DiaF#u`~AD97- zA6U}hxd&hkW>~=vhsarhTZy0sIJXvn`M@K{^JD}b?*t~qxfhSa~_XEIlOyh9N@<};FohZt|7MqdIwQ~Z*{i=z5u+R+zIfwiglZdh%{aSgGG zg5xBIUXFY4LvGIcCH@QMjv)KO@h{omvM)>cvQ*%oIR5K<4A^%bAgV(Q&plv+Xgbw+ zIne<)UdXV+)FJu+{W0wYHZ01`{oX=Z$qurDD97PS=Vq7Jv1EOS9$0W0NRWMMm9|QU zfq$Za^=XIse?w6UNILLuoGdYLiX{e4!7*?##w7+$VCV4FxR>-2?f3}3!nL20&^LT% zsDsoN_e!@HG;1fyLEtK<3UY5tzt9{5`z}$vgm01&QnwT)A7J0&4RRi6NH!%~Gwgz(2ewca+=6?Y9%q941f`=B-I1;l zrw2UVPFMil97Gq`)2-#UsNPs((0bU{2Vv?84RU{}@?*;5$`k6n>V4Y%y0H8hNsMHd zWS4lCV5jB-jRIIdo|dN@yoqsa4eW%l6Bz{!ZRTOqurq-=O`CDElX6D%?{?)-)l|G| zxr>6|795TfAUNcmU0_Q$r<=UC3R8$4tO#95g+j;w zeTl|G@>d3a6nG_2&rAfWB*|DamX=M;c@PcQlh7NAs5S@bi0c!&B0OFy(-qer-Um83 z&CWKb%DIHT%e>2EQiWiG{PH3mwoLOv;3t89WiB(m>Qqb#_Zu4J?ngtX7sBC-vli7 zxw7~d*}v;KrN5k=iZ$^EZ%%#LdS7*8K6`)GdwhjGN~<;AH_Tig19TdRTxHfa>#|Nk z_i(SeH=}z)_po)?+GZ=W@j=q9AA;@cjnM{p?umUq@tWnY6Z^D=-u+61_N%vBiY&jG zew_^oAatDdLpRC8Fe-`e)PJ1ysMX5M)lZrS_@`%PEbrV7oA#eOXg6F)LoIaeMP1`N zbzYdHXmqSU+tg|rGNoIFEM=B-OPFQI+-fc}ms$DN55Gg_>4#rH(Vx{&YIGaZ>)rMI#^lDZ#@2?ihEh|u=|l5};P;(i zJFK7TxRQ^AKVW&yEzP>VJ3WJKel+-Wx)EdQke(f?^ZS$7arPq1!=_!6Xh&0FV+T85 zx5m>k{nYcUot}7BMWE^H+%wSWI-lq15a}O9_aBYH3OL)BX2>$M=s&D&smZS0b<1ri zHIy2&jUP08(6F;1I*88G4r<~`D&_si4$qJvYy7LBe?E_XV0n?<0sZtabmgPa8Bc-z zkNOw=LRP{apZyrE_G61(eifVP&q6K!4wUOZy*SR=5pZ+<3E*?bK#POjNjgkt((Wub zm1dQ%uOzfeU6wvepJqrhL>r>@JRJz&r<9zooJ1k)2h0g(n2AP1(9w7J524M#v^|Bj zL?a#Q0{m}<<9|c2Sa=$oA^;JmNVt8G+mX|xm~5Fg4A>)us#(QTr)kra3VG7i=1XZ; zqrYrcVrmSICF!E|Ab=jC3xQ|v8Kx1IMT3yzn^}_i0Af7`vy6!?XC~p>3vX_k`Tq{v BhXnut diff --git a/examples/demos/ti-ra-nog_3d_test/source/main.c b/examples/demos/ti-ra-nog_3d_test/source/main.c deleted file mode 100644 index bee2c64..0000000 --- a/examples/demos/ti-ra-nog_3d_test/source/main.c +++ /dev/null @@ -1,488 +0,0 @@ -// SPDX-License-Identifier: MIT -// -// Copyright (c) 2008, Ti-Ra-Nog -// Copyright (c) 2008-2011, 2019, 2022 Antonio Niño Díaz -// -// This file is part of Nitro Engine - -// 3D Test by Ti-Ra-Nog - -//#define FAT_MESH_TEXT - -#include - -//#include -#include -#include - -#ifndef FAT_MESH_TEXT -#include "cube_bin.h" -#include "sphere_bin.h" -#include "texcube_bin.h" -#include "texsphere_bin.h" -#endif - -// Set the initial number of balls/spheres -#define NUM_BALLS 50 -// Set the initial number of balls/spheres for the second scene -#define SCENE2_BALLS 10 -// Set the maxium number of balls/spheres -#define MAX_NUM_BALLS 255 -// Set the minium number of balls/spheres -#define MIN_NUM_BALLS 0 - -int NUM = NUM_BALLS; - -NE_Camera *Camara, *Camara2, *Camara3, *Camara4; -NE_Model *Sphere[MAX_NUM_BALLS], *Cube, *Cube2; -NE_Material *Material; -NE_Material *Material2; -NE_Material *Material3; - -bool camera_swap = false; - -#define SUMX 3 -#define SUMY 1 -#define SUMZ 2 - -typedef struct { - float x, y, z; - float vx, vy, vz; -} ball_t; - -ball_t Ball[MAX_NUM_BALLS]; - -int posx = 0; -int posy = 0; -int posz = 0; -int posx2 = 0; -int posy2 = 0; -int posz2 = 0; - -void Draw3DScene(void) -{ - if (camera_swap) - NE_CameraUse(Camara); - else - NE_CameraUse(Camara2); - - NE_ViewRotate(posx, posy, posz); - - // Set the culling to none - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_NONE, 0); - NE_ModelDraw(Cube); - NE_ModelDraw(Cube2); - - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_BACK, 0); - - // Draw all spheres - for (int i = 0; i < SCENE2_BALLS; i++) - NE_ModelDraw(Sphere[i]); - - printf("\x1b[19;1HPolygon RAM1: %d \n Vertex RAM1: %d ", - NE_GetPolygonCount(), NE_GetVertexCount()); -} - -void Draw3DScene2(void) -{ - if (camera_swap) - NE_CameraUse(Camara2); - else - NE_CameraUse(Camara); - - NE_ViewRotate(posx2, posy2, posz2); - - // Set the culling to none - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_NONE, 0); - NE_ModelDraw(Cube); - NE_ModelDraw(Cube2); - - NE_PolyFormat(31, 0, NE_LIGHT_ALL, NE_CULL_BACK, 0); - - // Draw all spheres - for (int i = SCENE2_BALLS; i < NUM; i++) - NE_ModelDraw(Sphere[i]); - - printf("\x1b[21;1HPolygon RAM2: %d \n Vertex RAM2: %d ", - NE_GetPolygonCount(), NE_GetVertexCount()); -} - -void dual(void) -{ - char file[200]; - bool noise_effect = false; - bool sine_effect = false; - bool recording = false; - bool auto_rotate = false; - bool hide_text = false; - - // Screenshot number count - int nc = 0; - int sc = 0; - - // Allocate all needed objects - for (int i = 0; i < MAX_NUM_BALLS; i++) - Sphere[i] = NE_ModelCreate(NE_Static); - - Cube = NE_ModelCreate(NE_Static); - Cube2 = NE_ModelCreate(NE_Static); - Camara = NE_CameraCreate(); - Camara2 = NE_CameraCreate(); - Material = NE_MaterialCreate(); - Material2 = NE_MaterialCreate(); - -#ifdef FAT_MESH_TEXT - NE_MaterialTexLoadFAT(Material, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - "texsphere.bin"); - - for (int i = 0; i < MAX_NUM_BALLS; i++) - { - // Load sphere model. Note that this is just to test. This is a - // really inefficient way to load the same model several times. - // Ideally, you'd load it once and then create models by cloning - // the first one. - NE_ModelLoadStaticMeshFAT(Sphere[i], "sphere.bin"); - // Set Material to every Sphere - NE_ModelSetMaterial(Sphere[i], Material); - } - - NE_MaterialTexLoadFAT(Material2, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - "texcube.bin"); - NE_ModelLoadStaticMeshFAT(Cube, "cube.bin"); - NE_ModelSetMaterial(Cube, Material2); - - NE_ModelLoadStaticMeshFAT(Cube2, "cube.bin"); - NE_ModelSetMaterial(Cube2, Material2); -#else - NE_MaterialTexLoad(Material, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - (u8 *)texsphere_bin); - - for (int i = 0; i < MAX_NUM_BALLS; i++) - { - // Load sphere model - NE_ModelLoadStaticMesh(Sphere[i], (u32 *)sphere_bin); - // Set material to every sphere - NE_ModelSetMaterial(Sphere[i], Material); - } - - NE_MaterialTexLoad(Material2, GL_RGB, 64, 64, TEXGEN_TEXCOORD, - (u8 *)texcube_bin); - NE_ModelLoadStaticMesh(Cube, (u32 *)cube_bin); - NE_ModelSetMaterial(Cube, Material2); - - NE_ModelLoadStaticMesh(Cube2, (u32 *)cube_bin); - NE_ModelSetMaterial(Cube2, Material2); -#endif - - NE_ModelScale(Cube2, 3, 3, 3); - - NE_LightSet(0, NE_White, 0, -1, 0); - - if (camera_swap) - { - NE_CameraSet(Camara2, - -6, 6, -6, - 0, 0, 0, - 0, 1, 0); - NE_CameraSet(Camara, - -2, 2, -2, - 0, 0, 0, - 0, 1, 0); - } - else - { - NE_CameraSet(Camara, - -6, 6, -6, - 0, 0, 0, - 0, 1, 0); - NE_CameraSet(Camara2, - -2, 2, -2, - 0, 0, 0, - 0, 1, 0); - } - - NE_SetConsoleColor(NE_Red); - - // Clear screen and move cursor to the top - printf("\x1b[2J"); - - printf("\x1b[1;1HTi-Ra-Nog 3D Test\n ================="); - printf("\x1b[4;1HR: Save Video (So Sloooow)."); - printf("\x1b[5;1HL: Save screenshot."); - printf("\x1b[6;1HA: Move camera (Held Button)."); - printf("\x1b[7;1HB: Sine Effect."); - printf("\x1b[8;1HX: Noise Effect."); - printf("\x1b[9;1HY: Show/hide the text."); - printf("\x1b[10;1HStart: Move mesh (on/off)."); - printf("\x1b[11;1HSelect: LCD Swap."); - printf("\x1b[12;1HUP: Scene mode 1."); - printf("\x1b[13;1HDown: Scene mode 2."); - printf("\x1b[23;8HPowered By Nitro Engine"); - - for (int i = 0; i < NUM; i++) - NE_ModelScale(Sphere[i], 0.5, 0.5, 0.5); - - // Set start coordinates/rotation for models using random formules... - for (int i = 0; i < MAX_NUM_BALLS; i++) - { - // Set the absolute initial speed - Ball[i].vx = (float)(1 + ((float)(rand() % 10) / 10)) / 30; - Ball[i].vy = (float)(1 + ((float)(rand() % 10) / 10)) / 30; - Ball[i].vz = (float)(1 + ((float)(rand() % 10) / 10)) / 30; - - // Randomly invert the speed - if (rand() & 1) - Ball[i].vx *= -1; - if (rand() & 1) - Ball[i].vy *= -1; - if (rand() & 1) - Ball[i].vz *= -1; - } - - // Set start coordinates/rotation for models using random formules - for (int i = MAX_NUM_BALLS; i < NUM; i++) - { - // Set the absolute initial speed - Ball[i].vx = (float)(1 + ((float)(rand() % 10) / 10)) / 1; - Ball[i].vy = (float)(1 + ((float)(rand() % 10) / 10)) / 1; - Ball[i].vz = (float)(1 + ((float)(rand() % 10) / 10)) / 1; - - // Randomly invert the speed - if (rand() & 1) - Ball[i].vx *= -1; - if (rand() & 1) - Ball[i].vy *= -1; - if (rand() & 1) - Ball[i].vz *= -1; - } - - // Initialize some variables - int fpscount = 0; - int oldsec = 0; - int seconds = 0; - - while (1) - { - // Time Variables/Structs - time_t unixTime = time(NULL); - struct tm* timeStruct = gmtime((const time_t *)&unixTime); - seconds = timeStruct->tm_sec; - - // Has the second changed? - if (seconds != oldsec) - { - oldsec = seconds; // old second = new second - printf("\x1b[1;24HFPS: %d", fpscount); - fpscount = 0; // Reset FPS count for next second - } - - scanKeys(); - uint32 keysd = keysDown(); - uint32 keysh = keysHeld(); - - // Set rotation for every sphere - for (int i = 0; i < NUM; i++) - NE_ModelRotate(Sphere[i], 25 / i, -25 / i, 25 / i); - - // Calculate the model position for every model based on its - // current position and speed - for (int i = 0; i < SCENE2_BALLS; i++) - { - // If the ball crashes with one of the faces of the cube - // invert the speed of the corresponding axis. - if ((Ball[i].x >= 2.5) || (Ball[i].x <= -2.5)) - Ball[i].vx *= -1; - if ((Ball[i].y >= 2.5) || (Ball[i].y <= -2.5)) - Ball[i].vy *= -1; - if ((Ball[i].z >= 2.5) || (Ball[i].z <= -2.5)) - Ball[i].vz *= -1; - - // Add speed to the position to calculate the new - // position - Ball[i].x += Ball[i].vx; - Ball[i].y += Ball[i].vy; - Ball[i].z += Ball[i].vz; - - // Update position - NE_ModelSetCoord(Sphere[i], Ball[i].x, Ball[i].y, Ball[i].z); - } - - // Calculate the model position for every model based on its - // current position and speed - for (int i = SCENE2_BALLS; i < NUM; i++) - { - // If the ball crashes with one of the faces of the cube - // invert the speed of the corresponding axis. - if ((Ball[i].x >= 9.5) || (Ball[i].x <= -9.5)) - Ball[i].vx *= -1; - if ((Ball[i].y >= 9.5) || (Ball[i].y <= -9.5)) - Ball[i].vy *= -1; - if ((Ball[i].z >= 9.5) || (Ball[i].z <= -9.5)) - Ball[i].vz *= -1; - - // Add speed to the position to calculate the new - // position - Ball[i].x += Ball[i].vx; - Ball[i].y += Ball[i].vy; - Ball[i].z += Ball[i].vz; - - // Update position - NE_ModelSetCoord(Sphere[i], Ball[i].x, Ball[i].y, Ball[i].z); - } - - if (keysd & KEY_UP) - camera_swap = false; - - if (keysd & KEY_DOWN) - camera_swap = true; - - if (keysh & KEY_A) - { - posx += SUMX; - posy += SUMY; - posz += SUMZ; - - posx2 += SUMX; - posy2 += SUMY; - posz2 += SUMZ; - } - - NE_ProcessDual(Draw3DScene, Draw3DScene2); - fpscount++; - swiWaitForVBlank(); - - // If SELECT is pressed swap top and bottom screens - if (keysd & KEY_SELECT) - lcdSwap(); - - if (keysd & KEY_L) - { - // Generate file name - sprintf(file, "screen/screenshot_%04d.bmp", sc); - // Save the screenshot - NE_ScreenshotBMP(file); - // Increase the Screenshot number - sc++; - // Wait for next frame (this is necessary for not making - // artifacts in the next screenshot) - NE_WaitForVBL(0); - } - - if (keysd & KEY_START) - { - if (!auto_rotate) - auto_rotate = true; - else - auto_rotate = false; - } - - if (auto_rotate) - { - posx += SUMX; - posy += SUMY; - posz += SUMZ; - - posx2 += SUMX; - posy2 += SUMY; - posz2 += SUMZ; - } - - if (keysd & KEY_R) - { - if (!recording) - recording = true; - else - recording = false; - } - - if (recording) - { - // Generate file name - sprintf(file,"video/vid/video_%04d.bmp",nc); - // Save the screenshot - NE_ScreenshotBMP(file); - // Increase the Screenshot number - nc++; - // Wait for next frame (this is needed for not making - // artifacs in the next screenshot) - NE_WaitForVBL(0); - } - - if (keysd & KEY_Y) - { - if (!hide_text) - { - hide_text = true; - - // Clear screen and move cursor to the top - printf("\x1b[2J"); - - printf("\x1b[1;1H" - "Ti-Ra-Nog 3D Test\n" - " ================="); - printf("\x1b[23;8HPowered By Nitro Engine"); - } - else - { - hide_text = false; - printf("\x1b[4;1HR: Save Video (So Sloooow)."); - printf("\x1b[5;1HL: Save screenshot."); - printf("\x1b[6;1HA: Move camera (Held Button)."); - printf("\x1b[7;1HB: Sine Effect."); - printf("\x1b[8;1HX: Noise Effect."); - printf("\x1b[9;1HY: Show/hide the text."); - printf("\x1b[10;1HStart: Move mesh (on/off)."); - printf("\x1b[11;1HSelect: LCD Swap."); - printf("\x1b[12;1HUP: Scene mode 1."); - printf("\x1b[13;1HDown: Scene mode 2."); - } - } - - // If B is pressed use the sine effect. Stop if pressed again - if (keysd & KEY_B) - { - if (!sine_effect) - { - sine_effect = true; - NE_SpecialEffectSet(NE_SINE); - } - else - { - sine_effect = false; - NE_SpecialEffectSet(0); - } - } - - if (keysd & KEY_X) - { - if (!noise_effect) - { - noise_effect = true; - NE_SpecialEffectSet(NE_NOISE); - } - else - { - noise_effect = false; - NE_SpecialEffectSet(0); - } - } - } -} - -int main(void) -{ - irqEnable(IRQ_HBLANK); - irqSet(IRQ_VBLANK, NE_VBLFunc); - irqSet(IRQ_HBLANK, NE_HBLFunc); - - fatInitDefault(); - - NE_InitDual3D(); - NE_InitConsole(); - - NE_WaitForVBL(0); - - dual(); - - return 0; -}