diff --git a/.gitignore b/.gitignore index 7cbdd59..37515ed 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ *.exe *.run *.tmp -Build/* +Build/ diff --git a/LibMultiSpacc/Examples/Common.mk b/LibMultiSpacc/Examples/Common.mk index 84d5e56..cc6f6ed 100644 --- a/LibMultiSpacc/Examples/Common.mk +++ b/LibMultiSpacc/Examples/Common.mk @@ -51,29 +51,17 @@ Normal: $(Objects) $(CC) $^ $(LdFlags) -o $(AppName)$(ExeSuffix) NDS: - #mkdir -p ./Build/NDS/Examples - #cp -rT . ./Build/NDS/Examples/$(shell basename $(CURDIR)) || true - #rm -rf ./Build/NDS/Examples/$(shell basename $(CURDIR))/Build - #cp -rT ../../LibMultiSpacc ./Build/NDS/LibMultiSpacc - #cp ../NDS.mk ./Build/NDS/Examples/$(shell basename $(CURDIR))/Makefile - #ln -s $(wildcard ../../LibMultiSpacc/*.* ../../LibMultiSpacc/NDS/*.*) ./Build/NDS/Examples/$(shell basename $(CURDIR))/ - #cd ./Build/NDS/Examples/$(shell basename $(CURDIR)); make - #$(eval VirtualBuildDir = ./Build/NDS/$(shell basename $(CURDIR))) - #mkdir -p $(VirtualBuildDir)/source/LibMultiSpacc $(eval VirtualBuildDir = ./Build/NDS) mkdir -p $(VirtualBuildDir)/source/.tmp cp ../NDS.mk $(VirtualBuildDir)/Makefile - #cp $(wildcard *) $(VirtualBuildDir)/source/ - #cp $(Sources) $(wildcard ../../LibMultiSpacc/*.* ../../LibMultiSpacc/NDS/*.*) $(VirtualBuildDir)/source/ cp $(Sources) $(VirtualBuildDir)/source/ cp $(wildcard ../../LibMultiSpacc/*.*) $(VirtualBuildDir)/source/.tmp/ cd $(VirtualBuildDir)/source/.tmp; for i in *; do mv $$i ../LibMultiSpacc_$$i; done cp $(wildcard ../../LibMultiSpacc/NDS/*.*) $(VirtualBuildDir)/source/.tmp/ cd $(VirtualBuildDir)/source/.tmp; for i in *; do mv $$i ../LibMultiSpacc_NDS_$$i; done - #cp -rT ../../LibMultiSpacc $(VirtualBuildDir)/source/LibMultiSpacc - for i in $(VirtualBuildDir)/source/*; do sed -i 's|"../../LibMultiSpacc/|"LibMultiSpacc_|g' $$i; done - for i in $(VirtualBuildDir)/source/*; do sed -i 's|"../MultiSpacc|"LibMultiSpacc_MultiSpacc|g' $$i; done - for i in $(VirtualBuildDir)/source/*; do sed -i 's|"NDS/|"LibMultiSpacc_NDS_|g' $$i; done + for i in $(VirtualBuildDir)/source/*; do sed -i 's|#include[ \t]"../../LibMultiSpacc/|#include "LibMultiSpacc_|g' $$i; done + for i in $(VirtualBuildDir)/source/*; do sed -i 's|#include[ \t]"../MultiSpacc|#include "LibMultiSpacc_MultiSpacc|g' $$i; done + for i in $(VirtualBuildDir)/source/*; do sed -i 's|#include[ \t]"NDS/|#include "LibMultiSpacc_NDS_|g' $$i; done cd $(VirtualBuildDir); make Run run: All diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld b/LibMultiSpacc/Examples/HelloWorld/HelloWorld deleted file mode 100644 index 6d6fe3a..0000000 Binary files a/LibMultiSpacc/Examples/HelloWorld/HelloWorld and /dev/null differ diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c index 7bdc2e5..6dc98e2 100644 --- a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c +++ b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c @@ -2,31 +2,46 @@ #define AppName "Hello World" -int main( int argc, char *args[] ) +//MultiSpacc_Window consoleInnit(MultiSpacc_Window console){ +// consoleSelect(&console); +// PrintConsole *consolePtr = consoleInit(&console, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); +// consoleSelect(&console); +// consoleSelect(consolePtr); +// return *consolePtr; +//return *consoleInit(&Window, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); +//} + +int main( void ) { MultiSpacc_SurfaceConfig WindowConfig = { .Width = 320, .Height = 240, .Bits = 16 }; - MultiSpacc_Window *Window = MultiSpacc_SetWindow( WindowConfig ); - MultiSpacc_Surface *Screen = MultiSpacc_GetWindowSurface( Window ); + MultiSpacc_Window Window = MultiSpacc_SetWindow( WindowConfig ); + MultiSpacc_Surface *Screen = MultiSpacc_GetWindowSurface( &Window ); - if( Screen == NULL ) +/* if( Screen == NULL ) { printf("[E] Error Initializing Video System.\n"); return -1; - }; + };*/ - MultiSpacc_SetAppTitle( Window, AppName ); + //MultiSpacc_SetAppTitle( Window, AppName ); + + //PrintConsole bottomScreen; + //consoleInit(&Window, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); + //Window = consoleInnit(Window); + //consoleSelect(&Window); // Bitmap font borrowed from: // Copyright (c) 2018 Doug Fraker www.nesdoug.com (MIT) //MultiSpacc_Surface *TilesImg = MultiSpacc_LoadImage( "Tiles.png", Screen, NULL ); + MultiSpacc_PrintText( "Hello, World!", NULL, WindowConfig, 4, 4, NULL ); - //MultiSpacc_PrintText( "Hello, World!", Screen, WindowConfig.Width, WindowConfig.Height, 4, 4, TilesImg ); + while(1){ swiWaitForVBlank(); } - if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) + /*if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) { printf("[E] Error Updating Screen.\n"); return -1; - }; + };*/ MultiSpacc_Sleep( 3000 ); return 0; diff --git a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h index f4e40f7..143c71c 100644 --- a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h +++ b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h @@ -25,7 +25,7 @@ typedef struct MultiSpacc_SurfaceConfig { Uint32 Flags; } MultiSpacc_SurfaceConfig; -MultiSpacc_Window *MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ); +MultiSpacc_Window MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ); MultiSpacc_Surface *MultiSpacc_GetWindowSurface( MultiSpacc_Window *Window ); void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char Title[] ); @@ -36,4 +36,4 @@ int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ) int MultiSpacc_PollEvent( MultiSpacc_Event *Event ); -void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, int ScreenWidth, int ScreenHeight, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ); // WIP +void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, MultiSpacc_SurfaceConfig WindowConfig, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ); // WIP diff --git a/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c b/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c index 4f59263..ba8a94a 100644 --- a/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c +++ b/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c @@ -1,15 +1,34 @@ #include "../MultiSpacc.h" -MultiSpacc_Window *MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ) +MultiSpacc_Window MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ) { - MultiSpacc_Window *wip; - return wip; + //PrintConsole topScreen; + PrintConsole bottomScreen; + //PrintConsole *bottomScreenPtr; + + //videoSetMode(MODE_0_2D); + videoSetModeSub(MODE_0_2D); + + //vramSetBankA(VRAM_A_MAIN_BG); + vramSetBankC(VRAM_C_SUB_BG); + + //consoleInit(&topScreen, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, true, true); + //bottomScreenPtr = consoleInit(&bottomScreen, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); + + //consoleSelect(&bottomScreen); + //return *bottomScreenPtr; + + + PrintConsole *bottomScreenPtr = consoleInit(&bottomScreen, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); + bottomScreen = *bottomScreenPtr; + consoleSelect(&bottomScreen); + return bottomScreen; } MultiSpacc_Surface *MultiSpacc_GetWindowSurface( MultiSpacc_Window *Window ) { - MultiSpacc_Surface *wip; - return wip; + consoleSelect(Window); + return Window; } void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char Title[] ){} @@ -19,7 +38,7 @@ int MultiSpacc_UpdateWindowSurface( MultiSpacc_Window *Window ) return 0; } -void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, int ScreenWidth, int ScreenHeight, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) +void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, MultiSpacc_SurfaceConfig WindowConfig, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) { - + iprintf(Text); } \ No newline at end of file diff --git a/LibMultiSpacc/LibMultiSpacc/NDS/NDS.h b/LibMultiSpacc/LibMultiSpacc/NDS/NDS.h index 1bbb809..7f3e3bd 100644 --- a/LibMultiSpacc/LibMultiSpacc/NDS/NDS.h +++ b/LibMultiSpacc/LibMultiSpacc/NDS/NDS.h @@ -8,8 +8,8 @@ #include #define Uint32 int32 -#define MultiSpacc_Window PrintConsole #define MultiSpacc_Surface PrintConsole +#define MultiSpacc_Window PrintConsole #define MultiSpacc_Sleep {} typedef struct MultiSpacc_Event { diff --git a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c index 72a5207..e02a98e 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c +++ b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c @@ -32,7 +32,7 @@ MultiSpacc_Surface *MultiSpacc_LoadImage( char FilePath[], MultiSpacc_Surface *S return Final; } -void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, int ScreenWidth, int ScreenHeight, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) +void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, MultiSpacc_SurfaceConfig WindowConfig, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) { for( int i = 0; i < strlen( Text ); i++ ) {