mirror of
https://github.com/CTurt/dsgmLib.git
synced 2025-06-19 07:05:37 -04:00
106 lines
2.7 KiB
C
106 lines
2.7 KiB
C
#include "DSGM.h"
|
|
|
|
void DSGM_Debug(char *text, ...) {
|
|
#ifdef DEBUG
|
|
char buff[1024];
|
|
va_list args;
|
|
va_start(args, text);
|
|
vsnprintf(buff, 1023, text, args);
|
|
va_end(args);
|
|
nocashMessage(buff);
|
|
while(!DSGM_newpress.Start) DSGM_UpdateInput();
|
|
while(DSGM_newpress.Start) DSGM_UpdateInput();
|
|
#endif
|
|
}
|
|
|
|
void DSGM_Log(bool wait, char *text, ...) {
|
|
char buff[1024];
|
|
va_list args;
|
|
va_start(args, text);
|
|
vsnprintf(buff, 1023, text, args);
|
|
va_end(args);
|
|
nocashMessage(buff);
|
|
if(wait) {
|
|
while(!DSGM_newpress.Start) DSGM_UpdateInput();
|
|
while(DSGM_newpress.Start) DSGM_UpdateInput();
|
|
}
|
|
}
|
|
|
|
void DSGM_InitGFX(void) {
|
|
videoSetMode(MODE_0_2D);
|
|
videoSetModeSub(MODE_0_2D);
|
|
|
|
vramSetBankA(VRAM_A_MAIN_BG_0x06000000);
|
|
vramSetBankB(VRAM_B_MAIN_SPRITE_0x06400000);
|
|
vramSetBankC(VRAM_C_SUB_BG_0x06200000);
|
|
vramSetBankD(VRAM_D_SUB_SPRITE);
|
|
vramSetBankE(VRAM_E_BG_EXT_PALETTE);
|
|
vramSetBankF(VRAM_F_SPRITE_EXT_PALETTE);
|
|
vramSetBankG(VRAM_G_LCD);
|
|
vramSetBankH(VRAM_H_SUB_BG_EXT_PALETTE);
|
|
vramSetBankI(VRAM_I_SUB_SPRITE_EXT_PALETTE);
|
|
|
|
bgExtPaletteEnable();
|
|
bgExtPaletteEnableSub();
|
|
|
|
oamInit(&oamMain, SpriteMapping_1D_128, true);
|
|
oamInit(&oamSub, SpriteMapping_1D_128, true);
|
|
}
|
|
|
|
/*
|
|
2D: http://mtheall.com/banks.html#A=MBG0&B=MOBJ0&C=SBG&D=SOBJ&E=BGEPAL&F=OBJEPAL&H=SBGEPAL&I=SOBJEPAL
|
|
3D: http://mtheall.com/banks.html#A=MBG0&B=TS1&C=SBG&D=SOBJ&E=BGEPAL&F=OBJEPAL&G=MOBJ00&H=SBGEPAL&I=SOBJEPAL
|
|
*/
|
|
|
|
// If you need anything more custom than this, you're going to have to write it yourself
|
|
void DSGM_InitCustomGFX(bool topScreenDrawable, bool bottomScreenDrawable, bool main3D) {
|
|
if(topScreenDrawable) videoSetMode(main3D ? MODE_3_3D : MODE_3_2D);
|
|
else videoSetMode(main3D ? MODE_0_3D : MODE_0_2D);
|
|
|
|
if(bottomScreenDrawable) videoSetModeSub(MODE_3_2D);
|
|
else videoSetModeSub(MODE_0_2D);
|
|
|
|
vramSetBankA(VRAM_A_MAIN_BG_0x06000000);
|
|
if(!main3D) vramSetBankB(VRAM_B_MAIN_SPRITE_0x06400000);
|
|
else vramSetBankB(VRAM_B_TEXTURE_SLOT1);
|
|
vramSetBankC(VRAM_C_SUB_BG_0x06200000);
|
|
vramSetBankD(VRAM_D_SUB_SPRITE);
|
|
vramSetBankE(VRAM_E_BG_EXT_PALETTE);
|
|
vramSetBankF(VRAM_F_SPRITE_EXT_PALETTE);
|
|
if(!main3D) vramSetBankG(VRAM_G_LCD);
|
|
else vramSetBankG(VRAM_G_MAIN_SPRITE_0x06400000);
|
|
vramSetBankH(VRAM_H_SUB_BG_EXT_PALETTE);
|
|
vramSetBankI(VRAM_I_SUB_SPRITE_EXT_PALETTE);
|
|
|
|
bgExtPaletteEnable();
|
|
bgExtPaletteEnableSub();
|
|
|
|
oamInit(&oamMain, SpriteMapping_1D_128, true);
|
|
oamInit(&oamSub, SpriteMapping_1D_128, true);
|
|
}
|
|
|
|
void DSGM_InitRand(void) {
|
|
srand(time(NULL));
|
|
}
|
|
|
|
void DSGM_InitFS(void) {
|
|
if(!nitroFSInit(NULL)) {
|
|
DSGM_Debug("NitroFS failed\n");
|
|
}
|
|
if(!fatInitDefault()) {
|
|
DSGM_Debug("FAT failed\n");
|
|
}
|
|
chdir("nitro:/");
|
|
}
|
|
|
|
void DSGM_Update(void) {
|
|
DSGM_UpdateInput();
|
|
|
|
swiWaitForVBlank();
|
|
|
|
bgUpdate();
|
|
|
|
oamUpdate(&oamMain);
|
|
oamUpdate(&oamSub);
|
|
}
|