How the things go smoother when having proper tools for debbuging, and people to help us...
GSM needs call Setup_GS functio every time user choose a different one, in order to force it.
But FontM needs to be initialized and uploaded to vram once (if we do it many times, we got memory overflow, or something like that).
So, into start of GSM main routine, make this:
After that, every time I need to force a new vmode I call only Setup_GS function (I took and adopted it from FMCB sources):
// Setup GS
// FontM Init (make it once, in order to avoid EE Exceptions (due to memory leak/overflow)
gsFontM = gsKit_init_fontm();
// GS Init
gsGlobal = gsKit_init_global_custom(
GS_RENDER_QUEUE_OS_POOLSIZE+GS_RENDER_QUEUE_OS_POOLSIZE/2, //eliminates overflow
// Clear Screen
// Buffer Init
gsGlobal->PrimAAEnable = GS_SETTING_ON;
gsGlobal->DoubleBuffering = GS_SETTING_OFF;
gsGlobal->ZBuffering = GS_SETTING_OFF;
// DMAC Init
dmaKit_init(D_CTRL_RELE_OFF,D_CTRL_MFD_OFF, D_CTRL_STS_UNSPEC, D_CTRL_STD_OFF, D_CTRL_RCYC_8, 1 << DMA_CHANNEL_GIF);
// Screen Init