#include "platform.h"
#include "port.h"
#include "snes9x.h"
-#include "display.h"
-#include "hgw.h"
+
+#if CONF_GUI
+#include "osso.h"
+#endif
#define DIE(format, ...) do { \
fprintf(stderr, "Died at %s:%d: ", __FILE__, __LINE__ ); \
"enable safe subset of speedhacks", 0 },
{ "all-hacks", 'H', POPT_ARG_NONE, 0, 19,
"enable all speedhacks (may break sound)", 0 },
+ { "saver", 'R', POPT_ARG_NONE, 0, 20,
+ "save&exit when the emulator window is unfocused", 0 },
POPT_TABLEEND
};
"scancode to map", "CODE" },
{ "button", '\0', POPT_ARG_STRING, 0, 101,
"SNES Button to press (A, B, X, Y, L, R, Up, Down, Left, Right)", "name" },
- { "action", '\0', POPT_ARG_STRING, 0, 102,
+ { "button2", '\0', POPT_ARG_STRING, 0, 102,
+ "SNES Button to press for joypad 2", "name" },
+ { "action", '\0', POPT_ARG_STRING, 0, 110,
"emulator action to do (fullscreen, quit, ...)", "action" },
{ "hacks-file", '\0', POPT_ARG_STRING, 0, 200,
"path to snesadvance.dat file", "FILE" },
return kActionQuit;
} else if (strcasecmp(s, "fullscreen") == 0) {
return kActionToggleFullscreen;
+ } else if (strcasecmp(s, "screenshot") == 0) {
+ return kActionScreenshot;
} else if (strcasecmp(s, "quickload1") == 0) {
return kActionQuickLoad1;
} else if (strcasecmp(s, "quicksave1") == 0) {
romFile = 0;
basePath = 0;
- Config.quitting = false;
Config.enableAudio = true;
- Config.fullscreen = false;
- Config.scaler = 0;
- Config.hacksFile = 0;
- Config.touchscreenInput = false;
- Settings.JoystickEnabled = FALSE;
Settings.SoundPlaybackRate = 22050;
Settings.Stereo = TRUE;
Settings.SoundBufferSize = 512; // in samples
Settings.CyclesPercentage = 100;
- Settings.DisableSoundEcho = FALSE;
- Settings.APUEnabled = FALSE;
+ Settings.APUEnabled = FALSE; // We'll enable it later
Settings.H_Max = SNES_CYCLES_PER_SCANLINE;
Settings.SkipFrames = AUTO_FRAMERATE;
Settings.Shutdown = Settings.ShutdownMaster = TRUE;
Settings.FrameTimePAL = 20; // in msecs
Settings.FrameTimeNTSC = 16;
Settings.FrameTime = Settings.FrameTimeNTSC;
- Settings.DisableSampleCaching = FALSE;
- Settings.DisableMasterVolume = FALSE;
- Settings.Mouse = FALSE;
- Settings.SuperScope = FALSE;
- Settings.MultiPlayer5 = FALSE;
Settings.ControllerOption = SNES_JOYPAD;
-
- Settings.ForceTransparency = FALSE;
+
+ Settings.ForceTransparency = FALSE; // We'll enable those later
Settings.Transparency = FALSE;
- Settings.SixteenBit = TRUE;
-
+
Settings.SupportHiRes = FALSE;
- Settings.NetPlay = FALSE;
- Settings.ServerName [0] = 0;
- Settings.AutoSaveDelay = 30;
Settings.ApplyCheats = FALSE;
Settings.TurboMode = FALSE;
Settings.TurboSkipFrames = 15;
-
+
Settings.ForcePAL = FALSE;
Settings.ForceNTSC = FALSE;
Config.fullscreen = true;
break;
case 5:
- Settings.SixteenBit = TRUE;
Settings.Transparency = TRUE;
break;
case 6:
Settings.SoundBufferSize = atoi(poptGetOptArg(optCon));
break;
case 16:
- Config.touchscreenInput = true;
+ Config.touchscreenInput = 1;
break;
case 17:
- Config.touchscreenInput = true;
- // TODO Touchscreen grid
+ Config.touchscreenInput = 1;
+ Config.touchscreenShow = true;
break;
case 18:
Settings.HacksEnabled = TRUE;
Settings.HacksEnabled = TRUE;
Settings.HacksFilter = FALSE;
break;
+ case 20:
+ Config.saver = true;
+ break;
case 100:
scancode = atoi(poptGetOptArg(optCon));
break;
case 101:
- Config.joypad1Mapping[scancode] |=
+ Config.joypad1Mapping[scancode] |=
buttonNameToBit(poptGetOptArg(optCon));
+ Config.joypad1Enabled = true;
break;
case 102:
+ Config.joypad2Mapping[scancode] |=
+ buttonNameToBit(poptGetOptArg(optCon));
+ Config.joypad2Enabled = true;
+ break;
+ case 110:
Config.action[scancode] |=
actionNameToBit(poptGetOptArg(optCon));
break;
S9xSetRomFile(extra_arg);
}
-void S9xLoadConfig(int argc, const char ** argv)
+void S9xLoadConfig(int argc, char ** argv)
{
- poptContext optCon =
- poptGetContext("drnoksnes", argc, argv, optionsTable, 0);
+ poptContext optCon = poptGetContext("drnoksnes",
+ argc, const_cast<const char **>(argv), optionsTable, 0);
poptSetOtherOptionHelp(optCon, "<rom>");
// Builtin defaults
loadDefaults();
- // Read config file ~/apps/DrNokSnes.txt
+ // Read config file ~/.config/drnoksnes.conf
char defConfFile[PATH_MAX];
- sprintf(defConfFile, "%s/%s", getenv("HOME"), "apps/DrNokSnes.txt");
+ sprintf(defConfFile, "%s/%s", getenv("HOME"), ".config/drnoksnes.conf");
loadConfig(optCon, defConfFile);
// Command line parameters (including --conf args)
parseArgs(optCon);
- if (!gotRomFile() && !hgwLaunched) {
- // User did not specify a ROM file,
- // and we're not being launched from D-Bus.
- fprintf(stderr, "You need to specify a ROM, like this:\n");
- poptPrintUsage(optCon, stdout, 0);
- poptFreeContext(optCon);
- exit(2);
+#if CONF_GUI
+ if (!OssoOk())
+#endif
+ {
+ if (!gotRomFile()) {
+ // User did not specify a ROM file in the command line
+ fprintf(stderr, "You need to specify a ROM, like this:\n");
+ poptPrintUsage(optCon, stdout, 0);
+ poptFreeContext(optCon);
+ exit(2);
+ }
}
poptFreeContext(optCon);