I'm doing well with my monologue, so here is a way to have multiple windows if anyone is interrested.
Sadly, I don't think there is a way to disable Z sort within SGL, so the draw command gets sorted according to the distance, which means that it can't really work well unless you create your own rendering code
(which I guess could be done within SGL, but it would be a bit of a pain).
SPRITE user_win;
void SET_USER_CLIP(FIXED drawPriority, Sint16 XA, Sint16 YA, Sint16 XC, Sint16 YC)
{
user_win.CTRL = FUNC_UserClip;
user_win.XA = XA; /*Top left pixel*/
user_win.YA = YA; /*Top left pixel*/
user_win.XC = XC; /*Bottom right pixel*/
user_win.YC = YC; /*Bottom right pixel*/
slSetSprite(&user_win, drawPriority); /* slSetSprite allows you to manually set the draw commands, so you could do anything with it...if there is a way to bypass the Z-sort */
}