diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c index 6dc98e2..758efc9 100644 --- a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c +++ b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c @@ -2,47 +2,31 @@ #define AppName "Hello World" -//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 ) +int main( int argc, char *argv[] ) { 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"); + MultiSpacc_PrintDebug("[E] Error Initializing Video System.\n"); return -1; - };*/ + }; - //MultiSpacc_SetAppTitle( Window, AppName ); - - //PrintConsole bottomScreen; - //consoleInit(&Window, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); - //Window = consoleInnit(Window); - //consoleSelect(&Window); + MultiSpacc_SetAppTitle( Window, AppName ); // 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_Surface *TilesImg = MultiSpacc_LoadImage( "Tiles.png", Screen, NULL ); + MultiSpacc_PrintText( "Hello, World!", Screen, WindowConfig, 0, 0, TilesImg ); - while(1){ swiWaitForVBlank(); } - - /*if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) + if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) { - printf("[E] Error Updating Screen.\n"); + MultiSpacc_PrintDebug("[E] Error Updating Screen.\n"); return -1; - };*/ + }; - MultiSpacc_Sleep( 3000 ); + MultiSpacc_Sleep( 4000 ); return 0; } diff --git a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h index 143c71c..65bc6ff 100644 --- a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h +++ b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include #include @@ -25,7 +26,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 +37,5 @@ int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ) int MultiSpacc_PollEvent( MultiSpacc_Event *Event ); +void MultiSpacc_PrintDebug( const char *format, ... ); 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 ba8a94a..81826ca 100644 --- a/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c +++ b/LibMultiSpacc/LibMultiSpacc/NDS/NDS.c @@ -1,37 +1,24 @@ #include "../MultiSpacc.h" -MultiSpacc_Window MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ) +MultiSpacc_Window *MultiSpacc_SetWindow( MultiSpacc_SurfaceConfig WindowConfig ) { - //PrintConsole topScreen; - PrintConsole bottomScreen; - //PrintConsole *bottomScreenPtr; + PrintConsole *bottomScreen = NULL; - //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); + bottomScreen = consoleInit(bottomScreen, 3, BgType_Text4bpp, BgSize_T_256x256, 31, 0, false, true); + consoleSelect(bottomScreen); return bottomScreen; } MultiSpacc_Surface *MultiSpacc_GetWindowSurface( MultiSpacc_Window *Window ) { - consoleSelect(Window); return Window; } void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char Title[] ){} +void MultiSpacc_PrintDebug( const char *format, ... ){} int MultiSpacc_UpdateWindowSurface( MultiSpacc_Window *Window ) { @@ -41,4 +28,13 @@ int MultiSpacc_UpdateWindowSurface( MultiSpacc_Window *Window ) void MultiSpacc_PrintText( char Text[], MultiSpacc_Surface *Surface, MultiSpacc_SurfaceConfig WindowConfig, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) { iprintf(Text); +} + +void MultiSpacc_Sleep( int milliseconds ) +{ + int frames = (60 * milliseconds / 1000); + for (int i=0; i