dsgmLib/source/DSGM.c
CTurt 3c49209f7d Rename DSGM_InitNitro
It does Nitro and FAT so FS is more appropriate
2014-11-29 10:13:02 +00:00

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);
}