#include <stdio.h>
#include <string.h>
-#include <stdarg.h>
-#include <dlfcn.h>
-#include <sys/stat.h>
-#include <sys/types.h>
+#include <stdint.h>
#include <unistd.h>
-#include <signal.h>
#include "main.h"
+#include "menu.h"
#include "plugin.h"
+#include "plugin_lib.h"
#include "../libpcsxcore/misc.h"
-#include "../plugins/cdrcimg/cdrcimg.h"
-
-// from softgpu plugin
-extern int iUseDither;
-extern int UseFrameSkip;
-extern int UseFrameLimit;
-extern uint32_t dwActFixes;
-extern float fFrameRateHz;
-extern int dwFrameRateTicks;
+#include "../libpcsxcore/new_dynarec/new_dynarec.h"
// sound plugin
extern int iUseReverb;
extern int iUseInterpolation;
-extern int iXAPitch;
extern int iSPUIRQWait;
extern int iUseTimer;
+int g_opts = OPT_SHOWFPS;
+
+enum sched_action emu_action;
+void do_emu_action(void);
+
static void ChangeWorkingDirectory(char *exe)
{
- s8 exepath[1024];
- s8* s;
- sprintf(exepath, "%s", exe);
+ char exepath[1024];
+ char *s;
+ snprintf(exepath, sizeof(exepath), "%s", exe);
s = strrchr(exepath, '/');
if (s != NULL) {
*s = '\0';
char path[MAXPATHLEN];
const char *cdfile = NULL;
int loadst = 0;
- void *tmp;
int i;
strcpy(Config.BiosDir, "/home/user/MyDocs");
cdfile = isofilename;
}
- else if (!strcmp(argv[i],"-frameskip")){
-
- int tv_reg=atol(argv[++i]);
- if (tv_reg>0){
- UseFrameSkip=1;
- fFrameRateHz = (tv_reg==1)?50.0f: 59.94f;
- dwFrameRateTicks = (100000*100 / (unsigned long)(fFrameRateHz*100));
- }
+ else if (!strcmp(argv[i],"-frameskip")) {
+
+ int tv_reg = atol(argv[++i]);
+ if (tv_reg > 0)
+ pl_rearmed_cbs.frameskip = 1;
}
- else if (!strcmp(argv[i],"-sputhreaded")){
+ else if (!strcmp(argv[i],"-sputhreaded")) {
iUseTimer=1;
}
- else if (!strcmp(argv[i],"-nosound")){
- strcpy(Config.Spu, "spunull.so");
+ else if (!strcmp(argv[i],"-nosound")) {
+ strcpy(Config.Spu, "spunull.so");
}
else if(!strcmp(argv[i], "-bdir")) sprintf(Config.BiosDir, "%s", argv[++i]);
else if(!strcmp(argv[i], "-bios")) sprintf(Config.Bios, "%s", argv[++i]);
else if (!strcmp(argv[i],"-gles")){
- strcpy(Config.Gpu, "gpuGLES.so");
+ strcpy(Config.Gpu, "gpuGLES.so");
}
else if (!strcmp(argv[i], "-cdda")) Config.Cdda = 1;
else if (!strcmp(argv[i], "-xa")) Config.Xa = 1;
}
}
+ pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
+ iUseReverb = 2;
+ iUseInterpolation = 1;
+ iSPUIRQWait = 1;
+ iUseTimer = 2;
+
+ in_type1 = PSE_PAD_TYPE_STANDARD;
+ in_type2 = PSE_PAD_TYPE_STANDARD;
+
hildon_init(&argc, &argv);
if (cdfile)
if (SysInit() == -1)
return 1;
+ pl_init();
+
if (LoadPlugins() == -1) {
SysMessage("Failed loading plugins!");
return 1;
// If a state has been specified, then load that
if (loadst) {
- char state_filename[MAXPATHLEN];
- int ret = get_state_filename(state_filename, sizeof(state_filename), loadst - 1);
- if (ret == 0)
- ret = LoadState(state_filename);
- printf("%s state %s\n", ret ? "failed to load" : "loaded", state_filename);
+ int ret = emu_load_state(loadst - 1);
+ printf("%s state %d\n", ret ? "failed to load" : "loaded", loadst);
}
if (ready_to_go)
return 0;
}
- psxCpu->Execute();
+ pl_timing_prepare(Config.PsxType);
+
+ while (1)
+ {
+ stop = 0;
+ emu_action = SACTION_NONE;
+
+ psxCpu->Execute();
+ if (emu_action != SACTION_NONE)
+ do_emu_action();
+ }
return 0;
}