X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=drivers%2Fgp2x%2Fmain.c;h=3f4dff95dfd9cfefacf6a57e05c00c20304fe0b4;hp=4eaf3f6be00e307a2e1cf4978178412032241e74;hb=32a0f49f4d70fe79def8718ec0b4e2460d629d6c;hpb=c4980f9edd806014286d57aee1cbe5e73b803e46 diff --git a/drivers/gp2x/main.c b/drivers/gp2x/main.c index 4eaf3f6..3f4dff9 100644 --- a/drivers/gp2x/main.c +++ b/drivers/gp2x/main.c @@ -38,11 +38,12 @@ #include "../common/unixdsp.h" #include "../common/cheat.h" +#include "../../fce.h" + #include "dface.h" -// just for printing some iNES info for user.. -#include "../../fce.h" -#include "../../ines.h" + +void CleanSurface(void); // internals extern char lastLoadedGameName[2048]; @@ -50,12 +51,12 @@ extern uint8 Exit; // exit emu loop flag void CloseGame(void); FCEUGI *fceugi = NULL; -static int ntsccol=0,ntschue=-1,ntsctint=-1; +int ntsccol=0,ntschue=-1,ntsctint=-1; int soundvol=70; int inited=0; -int srendlinev[2]={0,0}; -int erendlinev[2]={239,239}; +int srendlinev[2]={8,0}; +int erendlinev[2]={231,239}; int srendline,erendline; @@ -83,7 +84,6 @@ static void ParseGI(FCEUGI *gi) InputType[1]=gi->input[1]; if(gi->inputfc>=0) InputTypeFC=gi->inputfc; - FCEUI_GetCurrentVidSystem(&srendline,&erendline); } void FCEUD_PrintError(char *s) @@ -130,8 +130,7 @@ void SaveConfig(const char *name) if (name) sprintf(tdir,"%s"PSS"cfg"PSS"%s.cfg",BaseDirectory,name); else sprintf(tdir,"%s"PSS"fceu2.cfg",BaseDirectory); - DriverInterface(DES_GETNTSCTINT,&ntsctint); - DriverInterface(DES_GETNTSCHUE,&ntschue); + FCEUI_GetNTSCTH(&ntsctint, &ntschue); SaveFCEUConfig(tdir,fceuconfig); } @@ -141,9 +140,9 @@ static void LoadConfig(const char *name) if (name) sprintf(tdir,"%s"PSS"cfg"PSS"%s.cfg",BaseDirectory,name); else sprintf(tdir,"%s"PSS"fceu2.cfg",BaseDirectory); + FCEUI_GetNTSCTH(&ntsctint, &ntschue); /* Get default settings for if no config file exists. */ LoadFCEUConfig(tdir,fceuconfig); - if(ntsctint>=0) DriverInterface(DES_SETNTSCTINT,&ntsctint); - if(ntschue>=0) DriverInterface(DES_SETNTSCHUE,&ntschue); + FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); } static void LoadLLGN(void) @@ -289,13 +288,10 @@ static int DoArgs(int argc, char *argv[]) if(erendlinev[x]239) erendlinev[x]=239; } - printf("main() setrendered lines: %d, %d, %d, %d\n",srendlinev[0],erendlinev[0],srendlinev[1],erendlinev[1]); - printf("main() clip sides %d\n", eoptions&EO_CLIPSIDES); - srendlinev[0]=0; + printf("FCEUI_SetRenderedLines: %d, %d, %d, %d\n",srendlinev[0],erendlinev[0],srendlinev[1],erendlinev[1]); + printf("clip sides: %d\n", eoptions&EO_CLIPSIDES); FCEUI_SetRenderedLines(srendlinev[0],erendlinev[0],srendlinev[1],erendlinev[1]); - FCEUI_SetRenderedLines(0,erendlinev[0],srendlinev[1],erendlinev[1]); FCEUI_SetSoundVolume(soundvol); - DriverInterface(DES_NTSCCOL,&ntsccol); // TODO DoDriverArgs(); if(fcexp) @@ -364,8 +360,9 @@ int CLImain(int argc, char *argv[]) gp2x_opt_setup(); gp2x_cpuclock_gamma_update(); LoadLLGN(); + FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); if(cpalette) - LoadCPalette(); + LoadCPalette(); // TODO if(InitSound()) inited|=1; @@ -394,7 +391,6 @@ int CLImain(int argc, char *argv[]) if (Settings.region_force) FCEUI_SetVidSystem(Settings.region_force - 1); ParseGI(fceugi); - //RefreshThrottleFPS(); InitOtherInput(); GameInterface(GI_INFOSTRING, infostring); @@ -422,13 +418,16 @@ int CLImain(int argc, char *argv[]) } PrepareOtherInput(); + RefreshThrottleFPS(); + FCEUI_GetCurrentVidSystem(&srendline,&erendline); gp2x_video_changemode(Settings.scaling == 3 ? 15 : 8); switch (Settings.scaling & 3) { - case 0: gp2x_video_RGB_setscaling(0, 320, 240); gp2x_video_set_offs(0); break; - case 1: gp2x_video_RGB_setscaling(0, 256, 240); gp2x_video_set_offs(32); break; - case 2: gp2x_video_RGB_setscaling(0, 256, 240); gp2x_video_set_offs(32); break; // TODO - case 3: gp2x_video_RGB_setscaling(0, 320, 240); gp2x_video_set_offs(32); break; + case 0: gp2x_video_set_offs(0); gp2x_video_RGB_setscaling(0, 320, 240); break; + case 1: gp2x_video_set_offs(32); gp2x_video_RGB_setscaling(0, 256, 240); break; + case 2: gp2x_video_set_offs(32); gp2x_video_RGB_setscaling(srendline, 256, erendline-srendline); break; + case 3: gp2x_video_set_offs(32); gp2x_video_RGB_setscaling(0, 320, 240); break; } + CleanSurface(); gp2x_start_sound(Settings.sound_rate, 16, 0); FCEUI_Emulate(); }