attempt at auto-emphasis mode, emphasizing main screen
This commit is contained in:
parent
85d823d4c7
commit
0a04efc33e
|
@ -92,6 +92,8 @@ extern u32 IE[2];
|
||||||
extern u32 IF[2];
|
extern u32 IF[2];
|
||||||
extern Timer Timers[8];
|
extern Timer Timers[8];
|
||||||
|
|
||||||
|
extern u16 PowerControl9;
|
||||||
|
|
||||||
extern u16 ExMemCnt[2];
|
extern u16 ExMemCnt[2];
|
||||||
extern u8 ROMSeed0[2*8];
|
extern u8 ROMSeed0[2*8];
|
||||||
extern u8 ROMSeed1[2*8];
|
extern u8 ROMSeed1[2*8];
|
||||||
|
|
|
@ -64,6 +64,9 @@ int ScreenGap = 0;
|
||||||
int ScreenLayout = 0;
|
int ScreenLayout = 0;
|
||||||
int ScreenSizing = 0;
|
int ScreenSizing = 0;
|
||||||
|
|
||||||
|
int MainScreenPos[3];
|
||||||
|
int AutoScreenSizing;
|
||||||
|
|
||||||
uiRect TopScreenRect;
|
uiRect TopScreenRect;
|
||||||
uiRect BottomScreenRect;
|
uiRect BottomScreenRect;
|
||||||
|
|
||||||
|
@ -73,6 +76,9 @@ u32 KeyInputMask;
|
||||||
SDL_Joystick* Joystick;
|
SDL_Joystick* Joystick;
|
||||||
|
|
||||||
|
|
||||||
|
void SetupScreenRects(int width, int height);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void UpdateWindowTitle(void* data)
|
void UpdateWindowTitle(void* data)
|
||||||
{
|
{
|
||||||
|
@ -88,6 +94,11 @@ int EmuThreadFunc(void* burp)
|
||||||
{
|
{
|
||||||
NDS::Init();
|
NDS::Init();
|
||||||
|
|
||||||
|
MainScreenPos[0] = 0;
|
||||||
|
MainScreenPos[1] = 0;
|
||||||
|
MainScreenPos[2] = 0;
|
||||||
|
AutoScreenSizing = 0;
|
||||||
|
|
||||||
ScreenDrawInited = false;
|
ScreenDrawInited = false;
|
||||||
Touching = false;
|
Touching = false;
|
||||||
|
|
||||||
|
@ -174,6 +185,35 @@ int EmuThreadFunc(void* burp)
|
||||||
|
|
||||||
if (EmuRunning == 0) break;
|
if (EmuRunning == 0) break;
|
||||||
|
|
||||||
|
// auto screen layout
|
||||||
|
{
|
||||||
|
MainScreenPos[2] = MainScreenPos[1];
|
||||||
|
MainScreenPos[1] = MainScreenPos[0];
|
||||||
|
MainScreenPos[0] = NDS::PowerControl9 >> 15;
|
||||||
|
|
||||||
|
int guess;
|
||||||
|
if (MainScreenPos[0] == MainScreenPos[2] &&
|
||||||
|
MainScreenPos[0] != MainScreenPos[1])
|
||||||
|
{
|
||||||
|
// constant flickering, likely displaying 3D on both screens
|
||||||
|
// TODO: when both screens are used for 2D only...???
|
||||||
|
guess = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (MainScreenPos[0] == 1)
|
||||||
|
guess = 1;
|
||||||
|
else
|
||||||
|
guess = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guess != AutoScreenSizing)
|
||||||
|
{
|
||||||
|
AutoScreenSizing = guess;
|
||||||
|
SetupScreenRects(Config::WindowWidth, Config::WindowHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(ScreenBuffer, GPU::Framebuffer, 256*384*4);
|
memcpy(ScreenBuffer, GPU::Framebuffer, 256*384*4);
|
||||||
uiAreaQueueRedrawAll(MainDrawArea);
|
uiAreaQueueRedrawAll(MainDrawArea);
|
||||||
|
|
||||||
|
@ -346,10 +386,7 @@ void SetupScreenRects(int width, int height)
|
||||||
|
|
||||||
int sizemode;
|
int sizemode;
|
||||||
if (ScreenSizing == 3)
|
if (ScreenSizing == 3)
|
||||||
{
|
sizemode = AutoScreenSizing;
|
||||||
// TODO!! auto mode
|
|
||||||
sizemode = 0;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
sizemode = ScreenSizing;
|
sizemode = ScreenSizing;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue