mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 18:45:23 -04:00
DS: Don't clear console after showing keyboard, also log if running in DS or DSi mode
This commit is contained in:
parent
fec395d3c5
commit
908077203e
@ -114,7 +114,7 @@ static void GetNativePath(char* str, const cc_string* path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cc_result Directory_Create(const cc_string* path) {
|
cc_result Directory_Create(const cc_string* path) {
|
||||||
if (!fat_available) return ENOSYS;
|
if (!fat_available) return ENOTSUP;
|
||||||
|
|
||||||
char str[NATIVE_STR_LEN];
|
char str[NATIVE_STR_LEN];
|
||||||
GetNativePath(str, path);
|
GetNativePath(str, path);
|
||||||
@ -186,11 +186,11 @@ cc_result File_Length(cc_file file, cc_uint32* len) {
|
|||||||
*len = st.st_size; return 0;
|
*len = st.st_size; return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InitFilesystem(void) {
|
static void InitFilesystem(cc_bool dsiMode) {
|
||||||
// I don't know why I have to call this function, but if I don't,
|
// I don't know why I have to call this function, but if I don't,
|
||||||
// then when running in DSi mode AND an SD card is readable,
|
// then when running in DSi mode AND an SD card is readable,
|
||||||
// fatInitDefault gets stuck somewhere (in disk_initialize it seems)
|
// fatInitDefault gets stuck somewhere (in disk_initialize it seems)
|
||||||
if (isDSiMode()) {
|
if (dsiMode) {
|
||||||
const DISC_INTERFACE* sd_io = get_io_dsisd();
|
const DISC_INTERFACE* sd_io = get_io_dsisd();
|
||||||
if (sd_io) sd_io->startup();
|
if (sd_io) sd_io->startup();
|
||||||
}
|
}
|
||||||
@ -402,7 +402,10 @@ static void InitNetworking(void) {
|
|||||||
*--------------------------------------------------------Platform---------------------------------------------------------*
|
*--------------------------------------------------------Platform---------------------------------------------------------*
|
||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
void Platform_Init(void) {
|
void Platform_Init(void) {
|
||||||
InitFilesystem();
|
cc_bool dsiMode = isDSiMode();
|
||||||
|
Platform_Log1("Running in %c mode", dsiMode ? "DSi" : "DS");
|
||||||
|
|
||||||
|
InitFilesystem(dsiMode);
|
||||||
InitNetworking();
|
InitNetworking();
|
||||||
|
|
||||||
cpuStartTiming(1);
|
cpuStartTiming(1);
|
||||||
|
@ -110,7 +110,7 @@ static void consoleLoadFont(u16* fontBgGfx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void consoleInit(void) {
|
static void consoleInit(void) {
|
||||||
int bgId = bgInitSub(0, BgType_Text4bpp, BgSize_T_256x256, 14, 0);
|
int bgId = bgInitSub(0, BgType_Text4bpp, BgSize_T_256x256, 22, 2);
|
||||||
conFontBgMap = (u16*)bgGetMapPtr(bgId);
|
conFontBgMap = (u16*)bgGetMapPtr(bgId);
|
||||||
|
|
||||||
consoleLoadFont((u16*)bgGetGfxPtr(bgId));
|
consoleLoadFont((u16*)bgGetGfxPtr(bgId));
|
||||||
@ -129,17 +129,6 @@ static u16* bg_ptr;
|
|||||||
struct _DisplayData DisplayInfo;
|
struct _DisplayData DisplayInfo;
|
||||||
struct _WindowData WindowInfo;
|
struct _WindowData WindowInfo;
|
||||||
|
|
||||||
// Console and Keyboard combined need more than 32 kb of H VRAM bank
|
|
||||||
// The simple solution would be to allocate the C VRAM bank, but ClassiCube
|
|
||||||
// needs as much VRAM as it can get for textures
|
|
||||||
// So the solution is to share the H VRAM bank between console and keyboard
|
|
||||||
static void ResetHBank(void) {
|
|
||||||
// Map all VRAM banks to LCDC mode so that the CPU can access it
|
|
||||||
vramSetBankH(VRAM_H_LCD);
|
|
||||||
dmaFillWords(0, VRAM_H, 32 * 1024);
|
|
||||||
vramSetBankH(VRAM_H_SUB_BG);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Window_Init(void) {
|
void Window_Init(void) {
|
||||||
DisplayInfo.Width = SCREEN_WIDTH;
|
DisplayInfo.Width = SCREEN_WIDTH;
|
||||||
DisplayInfo.Height = SCREEN_HEIGHT;
|
DisplayInfo.Height = SCREEN_HEIGHT;
|
||||||
@ -157,6 +146,7 @@ void Window_Init(void) {
|
|||||||
|
|
||||||
videoSetModeSub(MODE_0_2D);
|
videoSetModeSub(MODE_0_2D);
|
||||||
vramSetBankH(VRAM_H_SUB_BG);
|
vramSetBankH(VRAM_H_SUB_BG);
|
||||||
|
vramSetBankI(VRAM_I_SUB_BG_0x06208000);
|
||||||
setBrightness(2, 0);
|
setBrightness(2, 0);
|
||||||
consoleInit();
|
consoleInit();
|
||||||
}
|
}
|
||||||
@ -309,7 +299,6 @@ void OnscreenKeyboard_Open(struct OpenKeyboardArgs* args) {
|
|||||||
Keyboard* kbd = keyboardGetDefault();
|
Keyboard* kbd = keyboardGetDefault();
|
||||||
videoBgDisableSub(0); // hide console
|
videoBgDisableSub(0); // hide console
|
||||||
|
|
||||||
ResetHBank(); // reset shared VRAM
|
|
||||||
keyboardInit(kbd, 3, BgType_Text4bpp, BgSize_T_256x512,
|
keyboardInit(kbd, 3, BgType_Text4bpp, BgSize_T_256x512,
|
||||||
14, 0, false, true);
|
14, 0, false, true);
|
||||||
keyboardShow();
|
keyboardShow();
|
||||||
@ -330,9 +319,7 @@ void OnscreenKeyboard_Close(void) {
|
|||||||
if (!keyboardOpen) return;
|
if (!keyboardOpen) return;
|
||||||
keyboardOpen = false;
|
keyboardOpen = false;
|
||||||
|
|
||||||
ResetHBank(); // reset shared VRAM
|
|
||||||
videoBgEnableSub(0); // show console
|
videoBgEnableSub(0); // show console
|
||||||
consoleInit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user