#include "plugin.h"
#include "plugin_lib.h"
#include "omap.h"
+#include "pcnt.h"
#include "common/plat.h"
#include "../libpcsxcore/misc.h"
+#include "../libpcsxcore/cdrom.h"
#include "../libpcsxcore/psemu_plugin_defs.h"
+#include "../plugins/dfinput/pad.h"
#include "revision.h"
#define MENU_X2 1
MA_MAIN_LOAD_STATE,
MA_MAIN_RESET_GAME,
MA_MAIN_LOAD_ROM,
+ MA_MAIN_SWAP_CD,
MA_MAIN_RUN_BIOS,
MA_MAIN_CONTROLS,
MA_MAIN_CREDITS,
static unsigned short fname2color(const char *fname)
{
static const char *cdimg_exts[] = { ".bin", ".img", ".iso", ".cue", ".z", ".bz", ".znx", ".pbp" };
- static const char *other_exts[] = { ".ccd", ".toc", ".mds", ".sub", ".table", ".index" };
+ static const char *other_exts[] = { ".ccd", ".toc", ".mds", ".sub", ".table", ".index", ".sbi" };
const char *ext = strrchr(fname, '.');
int i;
{
if (CdromId[0] != 0) {
char buff[64];
- snprintf(buff, sizeof(buff), "%.32s/%.9s (running as %s)",
- get_cd_label(), CdromId, Config.PsxType ? "PAL" : "NTSC");
+ snprintf(buff, sizeof(buff), "%.32s/%.9s (running as %s, with %s)",
+ get_cd_label(), CdromId, Config.PsxType ? "PAL" : "NTSC",
+ Config.HLE ? "HLE" : "BIOS");
smalltext_out16(4, 1, buff, 0x105f);
}
}
ClosePlugins();
set_cd_image(NULL);
LoadPlugins();
+ pcnt_hook_plugins();
NetOpened = 0;
if (OpenPlugins() == -1) {
me_update_msg("failed to open plugins");
ClosePlugins();
set_cd_image(fname);
LoadPlugins();
+ pcnt_hook_plugins();
NetOpened = 0;
if (OpenPlugins() == -1) {
me_update_msg("failed to open plugins");
return 0;
}
+static int swap_cd_image(void)
+{
+ char *fname;
+
+ fname = menu_loop_romsel(last_selected_fname, sizeof(last_selected_fname));
+ if (fname == NULL)
+ return -1;
+
+ printf("selected file: %s\n", fname);
+
+ CdromId[0] = '\0';
+ CdromLabel[0] = '\0';
+
+ set_cd_image(fname);
+ if (ReloadCdromPlugin() < 0) {
+ me_update_msg("failed to load cdr plugin");
+ return -1;
+ }
+ if (CDR_open() < 0) {
+ me_update_msg("failed to open cdr plugin");
+ return -1;
+ }
+
+ SetCdOpenCaseTime(time(NULL) + 2);
+ LidInterrupt();
+
+ strcpy(last_selected_fname, rom_fname_reload);
+ return 0;
+}
+
static int main_menu_handler(int id, int keys)
{
switch (id)
if (romsel_run() == 0)
return 1;
break;
+ case MA_MAIN_SWAP_CD:
+ if (swap_cd_image() == 0)
+ return 1;
+ break;
case MA_MAIN_RUN_BIOS:
if (run_bios() == 0)
return 1;
mee_handler_id("Load State", MA_MAIN_LOAD_STATE, main_menu_handler),
mee_handler_id("Reset game", MA_MAIN_RESET_GAME, main_menu_handler),
mee_handler_id("Load CD image", MA_MAIN_LOAD_ROM, main_menu_handler),
+ mee_handler_id("Change CD image", MA_MAIN_SWAP_CD, main_menu_handler),
mee_handler_id("Run BIOS", MA_MAIN_RUN_BIOS, main_menu_handler),
mee_handler ("Options", menu_loop_options),
mee_handler ("Controls", menu_loop_keyconfig),
me_enable(e_menu_main, MA_MAIN_SAVE_STATE, ready_to_go && CdromId[0]);
me_enable(e_menu_main, MA_MAIN_LOAD_STATE, ready_to_go && CdromId[0]);
me_enable(e_menu_main, MA_MAIN_RESET_GAME, ready_to_go);
+ me_enable(e_menu_main, MA_MAIN_SWAP_CD, ready_to_go);
me_enable(e_menu_main, MA_MAIN_RUN_BIOS, bios_sel != 0);
in_set_config_int(0, IN_CFG_BLOCKING, 1);
if (ret)
fprintf(stderr, "Warning: GPU_open returned %d\n", ret);
}
+
+ dfinput_activate(in_type == PSE_PAD_TYPE_ANALOGPAD);
}
void me_update_msg(const char *msg)