#include <stdio.h>
#include <stdlib.h>
-#include "../common/main.h"
-#include "minimal.h"
+#include "main.h"
#include "throttle.h"
+#include "config.h"
+#include "args.h"
+#include "unixdsp.h"
+#include "cheat.h"
+#include "dface.h"
+#include "platform.h"
#include "menu.h"
-#include "gp2x.h"
-
-#include "../common/config.h"
-#include "../common/args.h"
-#include "../common/unixdsp.h"
-#include "../common/cheat.h"
+#include "settings.h"
#include "../../fce.h"
#include "../../cart.h"
-#include "dface.h"
+// these are now here to try to make compatible configs
+// between different versions of the emu
+DSETTINGS Settings;
+CFGSTRUCT DriverConfig[]={
+ AC(Settings.turbo_rate_add),
+ AC(Settings.sound_rate),
+ AC(Settings.showfps),
+ AC(Settings.scaling),
+ AC(Settings.frameskip),
+ AC(Settings.sstate_confirm),
+ AC(Settings.region_force),
+ AC(Settings.cpuclock),
+ AC(Settings.mmuhack),
+ AC(Settings.ramtimings),
+ AC(Settings.gamma),
+ AC(Settings.perfect_vsync),
+ AC(Settings.accurate_mode),
+ ENDCFGSTRUCT
+};
void CleanSurface(void);
// internals
-extern char lastLoadedGameName[2048];
extern uint8 Exit; // exit emu loop flag
extern int FSkip;
void CloseGame(void);
static char *inputa[2]={0,0};
static char *fcexp=0;
static int docheckie[4];
+#ifdef NETWORK
+ static int docheckie2[2]={0,0};
+#endif
static ARGPSTRUCT FCEUArgs[]={
{"-soundvol",0,&soundvol,0},
{"-noautowrite",0,&eoptions,0x8000|EO_NOAUTOWRITE},
{"-slstart",0,&srendlinev[0],0},{"-slend",0,&erendlinev[0],0},
{"-slstartp",0,&srendlinev[1],0},{"-slendp",0,&erendlinev[1],0},
- {0,(void *)DriverArgs,0,0},
- {0,0,0,0}
+ {"-sound",0,&Settings.sound_rate,0},
+ {"-showfps",0,&Settings.showfps,0},
+ #ifdef NETWORK
+ {"-connect",&docheckie2[0],&netplayhost,0x4001},
+ {"-server",&docheckie2[1],0,0},
+ {"-netport",0,&Port,0},
+ #endif
+ {0,(void *)DriverArgs,0,0},
+ {0,0,0,0}
};
memset(docheckie,0,sizeof(docheckie));
FCEUI_SetRenderedLines(srendlinev[0],erendlinev[0],srendlinev[1],erendlinev[1]);
FCEUI_SetSoundVolume(80);
+ #ifdef NETWORK
+ if(docheckie2[0])
+ netplay=2;
+ else if(docheckie2[1])
+ netplay=1;
+
+ if(netplay)
+ FCEUI_SetNetworkPlay(netplay);
+ #endif
DoDriverArgs();
if(fcexp)
#include "usage.h"
-int CLImain(int argc, char *argv[])
+int main(int argc, char *argv[])
{
int last_arg_parsed, ret;
/* TODO if(argc<=1)
return 1;
}*/
+ platform_init();
if(!DriverInitialize())
{
return 1;
GetBaseDirectory(BaseDirectory);
FCEUI_SetBaseDirectory(BaseDirectory);
lastLoadedGameName[0] = 0;
+ menu_init();
+ in_init();
CreateDirs();
LoadConfig(NULL);
last_arg_parsed=DoArgs(argc-1,&argv[1]);
- gp2x_opt_setup();
+ platform_late_init();
+ in_probe();
+
LoadLLGN();
FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue);
if(cpalette)
else
{
switch(LoadGameLastError) {
- default: strcpy(menuErrorMsg, "failed to load ROM"); break;
- case 2: strcpy(menuErrorMsg, "Can't find a ROM for ips/movie"); break;
- case 10: strcpy(menuErrorMsg, "FDS BIOS ROM is missing, read docs"); break;
- case 11: strcpy(menuErrorMsg, "Error reading auxillary FDS file"); break;
+ default: menu_update_msg("failed to load ROM"); break;
+ case 2: menu_update_msg("Can't find a ROM for ips/movie"); break;
+ case 10: menu_update_msg("FDS BIOS ROM is missing, read docs"); break;
+ case 11: menu_update_msg("Error reading auxillary FDS file"); break;
}
}
}
if(Exit || !fceugi)
{
int ret;
- ret = gp2x_menu_do();
+ ret = menu_loop();
if (ret == 1) break; // exit emu
if (ret == 2) { // reload ROM
Exit = 0;
}
}
- gp2x_opt_update();
PrepareOtherInput();
FCEUI_GetCurrentVidSystem(&srendline,&erendline);
- gp2x_video_changemode(Settings.scaling == 3 ? 15 : 8);
- switch (Settings.scaling & 3) {
- case 0: gp2x_video_set_offs(0); gp2x_video_RGB_setscaling(320, 240); break;
- case 1: gp2x_video_set_offs(32); gp2x_video_RGB_setscaling(256, 240); break;
- case 2: gp2x_video_set_offs(32+srendline*320); gp2x_video_RGB_setscaling(256, erendline-srendline); break;
- case 3: gp2x_video_set_offs(32); gp2x_video_RGB_setscaling(320, 240); break;
- }
+ platform_apply_config();
CleanSurface();
- gp2x_start_sound(Settings.sound_rate, 16, 0);
+ StartSound();
RefreshThrottleFPS();
FCEUI_Emulate();
}
SaveLLGN();
FCEUI_Kill();
DriverKill();
- return 0;
+ platform_finish();
+ return 0;
}
static int DriverInitialize(void)
if (Exit) FSkip=0;
}
+