#include "../libpcsxcore/cheat.h"
#include "../libpcsxcore/new_dynarec/new_dynarec.h"
#include "../plugins/cdrcimg/cdrcimg.h"
-#include "common/plat.h"
-#include "common/readpng.h"
-#include "common/input.h"
-#include "linux/in_evdev.h"
+#include "revision.h"
+
+#ifndef NO_FRONTEND
+#include "libpicofe/input.h"
+#include "libpicofe/plat.h"
+#include "libpicofe/readpng.h"
+#endif
// don't include debug.h - it breaks ARM build (R1 redefined)
void StartDebugger();
strcpy(Config.Pad1, "builtin_pad");
strcpy(Config.Pad2, "builtin_pad");
strcpy(Config.Net, "Disabled");
-#if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */
- strcpy(Config.Gpu, "gpu_unai.so");
-#endif
snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR);
}
Config.PsxAuto = 1;
pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto
+ pl_rearmed_cbs.gpu_neon.enhancement_enable =
+ pl_rearmed_cbs.gpu_neon.enhancement_no_main = 0;
pl_rearmed_cbs.gpu_peops.iUseDither = 0;
pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
pl_rearmed_cbs.gpu_unai.abe_hack =
void do_emu_action(void)
{
- char buf[MAXPATHLEN];
int ret;
emu_action_old = emu_action;
switch (emu_action) {
- case SACTION_ENTER_MENU:
- menu_loop();
- return;
case SACTION_LOAD_STATE:
ret = emu_load_state(state_slot);
snprintf(hud_msg, sizeof(hud_msg), ret == 0 ? "LOADED" : "FAIL!");
ret = emu_save_state(state_slot);
snprintf(hud_msg, sizeof(hud_msg), ret == 0 ? "SAVED" : "FAIL!");
break;
+#ifndef NO_FRONTEND
+ case SACTION_ENTER_MENU:
+ menu_loop();
+ return;
case SACTION_NEXT_SSLOT:
state_slot++;
if (state_slot > 9)
state_slot--;
if (state_slot < 0)
state_slot = 9;
- goto do_state_slot;
+do_state_slot:
+ snprintf(hud_msg, sizeof(hud_msg), "STATE SLOT %d [%s]", state_slot,
+ emu_check_state(state_slot) == 0 ? "USED" : "FREE");
+ hud_new_msg = 3;
+ printf("* %s\n", hud_msg);
+ break;
case SACTION_TOGGLE_FSKIP:
pl_rearmed_cbs.fskip_advice = 0;
pl_rearmed_cbs.frameskip++;
pl_rearmed_cbs.frameskip == 0 ? "OFF" : "1" );
plugin_call_rearmed_cbs();
break;
+ case SACTION_SWITCH_DISPMODE:
+ pl_switch_dispmode();
+ plugin_call_rearmed_cbs();
+ if (GPU_open != NULL && GPU_close != NULL) {
+ GPU_close();
+ GPU_open(&gpuDisp, "PCSX", NULL);
+ }
+ break;
case SACTION_SCREENSHOT:
{
+ char buf[MAXPATHLEN];
void *scrbuf;
int w, h, bpp;
time_t t = time(NULL);
}
case SACTION_VOLUME_UP:
case SACTION_VOLUME_DOWN:
- plat_step_volume(emu_action == SACTION_VOLUME_UP);
+ plat_target_step_volume(emu_action == SACTION_VOLUME_UP);
return;
case SACTION_MINIMIZE:
+ if (GPU_close != NULL)
+ GPU_close();
+
plat_minimize();
+
+ if (GPU_open != NULL) {
+ ret = GPU_open(&gpuDisp, "PCSX", NULL);
+ if (ret)
+ fprintf(stderr, "GPU_open returned %d\n", ret);
+ }
return;
+#endif
default:
return;
}
- hud_new_msg = 3;
- return;
-do_state_slot:
- snprintf(hud_msg, sizeof(hud_msg), "STATE SLOT %d [%s]", state_slot,
- emu_check_state(state_slot) == 0 ? "USED" : "FREE");
hud_new_msg = 3;
- printf("* %s\n", hud_msg);
}
static int cdidcmp(const char *id1, const char *id2)
}
Cheats[NumCheats].Descr = strdup(name);
Cheats[NumCheats].Enabled = 0;
+ Cheats[NumCheats].WasEnabled = 0;
Cheats[NumCheats].First = NumCodes;
Cheats[NumCheats].n = 0;
NumCheats++;
hud_new_msg = 2;
}
-int main(int argc, char *argv[])
+int emu_core_preinit(void)
{
// what is the name of the config file?
// it may be redefined by -cfg on the command line
memset(&Config, 0, sizeof(Config));
- CheckSubDir();
set_default_paths();
emu_set_default_config();
- check_memcards();
strcpy(Config.Bios, "HLE");
-#ifdef MAEMO
- extern int maemo_main(int argc, char **argv);
- return maemo_main(argc, argv);
-#else
+ return 0;
+}
+
+int emu_core_init(void)
+{
+ CheckSubDir();
+ check_memcards();
+
+ if (EmuInit() == -1) {
+ printf("PSX emulator couldn't be initialized.\n");
+ return -1;
+ }
+
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+
+ if (Config.Debug) {
+ StartDebugger();
+ }
+
+ return 0;
+}
+
+#ifndef NO_FRONTEND
+int main(int argc, char *argv[])
+{
char file[MAXPATHLEN] = "";
char path[MAXPATHLEN];
const char *cdfile = NULL;
int loadst = 0;
int i;
+ emu_core_preinit();
+
// read command line options
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-psxout")) psxout = 1;
else if (!strcmp(argv[i], "-h") ||
!strcmp(argv[i], "-help") ||
!strcmp(argv[i], "--help")) {
- printf(PACKAGE_NAME " " PACKAGE_VERSION "\n");
+ printf("PCSX-ReARMed " REV "\n");
printf("%s\n", _(
" pcsx [options] [file]\n"
"\toptions:\n"
"\t-cdfile FILE\tRuns a CD image file\n"
- "\t-nogui\t\tDon't open the GTK GUI\n"
"\t-cfg FILE\tLoads desired configuration file (default: ~/.pcsx/pcsx.cfg)\n"
"\t-psxout\t\tEnable PSX output\n"
"\t-load STATENUM\tLoads savestate STATENUM (1-5)\n"
"\t-h -help\tDisplay this message\n"
- "\tfile\t\tLoads file\n"));
+ "\tfile\t\tLoads a PSX EXE file\n"));
return 0;
} else {
strncpy(file, argv[i], MAXPATHLEN);
if (cdfile)
set_cd_image(cdfile);
- if (SysInit() == -1)
- return 1;
-
// frontend stuff
// init input but leave probing to platform code,
// they add input drivers and may need to modify them after probe
plat_init();
menu_init(); // loads config
+ emu_core_init();
+
if (psxout)
Config.PsxOut = 1;
do_emu_action();
}
- return 0;
-#endif
-}
-
-int SysInit() {
- if (EmuInit() == -1) {
- printf("PSX emulator couldn't be initialized.\n");
- return -1;
- }
-
- LoadMcds(Config.Mcd1, Config.Mcd2);
-
- if (Config.Debug) {
- StartDebugger();
- }
-
return 0;
}
+#endif
void SysRunGui() {
printf("SysRunGui\n");
}
-void StartGui() {
- printf("StartGui\n");
-}
-
static void dummy_lace()
{
}
void OnFile_Exit() {
printf("OnFile_Exit\n");
-#ifndef MAEMO
- menu_finish();
-#endif
SysClose();
+#ifndef NO_FRONTEND
+ menu_finish();
plat_finish();
exit(0);
+#endif
}
int get_state_filename(char *buf, int size, int i) {
MAKE_PATH(dotdir, "/.pcsx/plugins/", NULL);
- strcpy(info.EmuName, "PCSX " PACKAGE_VERSION);
+ strcpy(info.EmuName, "PCSX");
strncpy(info.CdromID, CdromId, 9);
strncpy(info.CdromLabel, CdromLabel, 9);
info.psxMem = psxM;