From 2b9f625f76ec817dbbb1845ecb94363172ffb3fd Mon Sep 17 00:00:00 2001
From: stephena Note that you must use the entire name of the port as specified by
your operating system. For example, in Windows this would be COM1,
COM2, etc; Linux and MacOSX tend to use names similar to '/dev/xxxxxx'.
- For now, only Linux/UNIX, MacOSX, and Win32 are supported.VLxrZw}B{
BT
zLs12^I0hoc5kdD+!V20OAk4fcB%vT%0uZMCcl|s%#O!-W1bDb#c@DCTicW%0#D(lR
zmAX_^%k_0Sny5Zlk)Fog$&)4zN!7AUDb2<$oaacDOiEAiD|eDT;?6qY#RiSLlXWhf
z`?+ZxiJuE@c5sHBxW~DoWCRw?Fh#NPiQ3I}2~MK~d3Cw54yg?&KVO=BMAi@Y0uo!H
zGe4V{76nZgFV!}hJ2HU#wwY2UNfdU-;=lU}CqYA}nmtK4;;`EPlgDx%9_2x<6YaMU
z+}*94z8dT#(|Pwv@REEXvOfj$xFu;Wz@5tv-^mmEICVpQ7&Em~FPLA{bNwNviaK%q
zl+!9bGq~9_J?fE*8RUJ&Orxjs$v536zL_4$%?s~z=$13!c2&0i;x@YkSruCF|EvI}
z@GOt4hNq?qcjsD)8x+spGqSSVf-^`j8jjb9-YIjFpKx6D7#+DyYN8
z^FY~jS1cjZM7QmA=_dH~%
A
z>pkgpOhy?$8)xn6AI%!A?Kv2J7gqds*an|u9=iBDxZb#xqawQMgtJ)=My}tykbR_=
z&Q6tk)`EkFgSu|E4#lPXzWE>QQUAXK{GS9|1h<46+#bLd;|AM+hJwaz5bheYT|ThP
z&dk*A)ZpOoaQEb7d;92Ue}DgMe{27rE7
!tPkz#3%)_fd;|5U*MVD|$-+~UhNkGJ
zK<@fX@!kx^1$KG^UX@alWpB2El;p%=|Ml1m)q%FSUviL4!pLWT-?Fo8>uFa?;aWu>
ztgEZH(k;Av>teVNfVM6B95hh!4dg+8F*fOkCWTWnE3+z*)@>CUY*xHs7kPnT(77CG
z+X}w!O=cZELy9y@rQsNX9KD^K(_*SxBIZ3`
-
- -video <soft|gl>
Use SDL software or OpenGL rendering mode.
+ Use software or OpenGL rendering mode.
@@ -1792,6 +1792,11 @@
+ Enable using the mouse for various controllers (paddle, driving, etc).
+
+
+ -grabmouse <1|0>
Keeps the mouse in the game window in emulation mode.
+
-dsense <number>
Sensitivity for emulation of paddles when using a digital device
@@ -2374,6 +2379,7 @@
Mouse paddle sensitivity Sensitivity used when emulating a paddle using a mouse -msense Allow all 4 ... Allow all 4 joystick directions to be pressed simultaneously -joyallow4
+ Use mouse as ... Use the mouse for various controllers (paddles, driving, etc) -usemouse
@@ -2567,7 +2573,7 @@
Grab mouse ... Keep mouse in window in emulation mode -grabmouse
Support for the EEPROM portion of the AtariVox and SaveKey is currently
emulated. That is, a file will be created on your computer simulating the
diff --git a/src/emucore/FrameBuffer.cxx b/src/emucore/FrameBuffer.cxx
index ac1e9f659..d021eb547 100644
--- a/src/emucore/FrameBuffer.cxx
+++ b/src/emucore/FrameBuffer.cxx
@@ -743,11 +743,12 @@ cerr << "New mode:" << endl
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::setCursorState()
{
- // Always grab mouse in fullscreen or during emulation,
+ // Always grab mouse in fullscreen or during emulation (if enabled),
// and don't show the cursor during emulation
bool emulation =
myOSystem->eventHandler().state() == EventHandler::S_EMULATE;
- grabMouse(fullScreen() || emulation);
+ grabMouse(fullScreen() ||
+ (emulation && myOSystem->settings().getBool("grabmouse")));
showCursor(!emulation);
}
diff --git a/src/emucore/OSystem.cxx b/src/emucore/OSystem.cxx
index 85bf02444..b08ccc7f8 100644
--- a/src/emucore/OSystem.cxx
+++ b/src/emucore/OSystem.cxx
@@ -643,9 +643,16 @@ string OSystem::MD5FromFile(const string& filename)
void OSystem::logMessage(const string& message, uInt8 level)
{
if(level == 0)
- cerr << message;
+ {
+ cout << message << flush;
+ myLogMessages += message;
+ }
else if(level <= (uInt8)mySettings->getInt("showinfo"))
- cout << message;
+ {
+ if(1) // TODO - messages should be output to console
+ cout << message << flush;
+ myLogMessages += message;
+ }
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/emucore/OSystem.hxx b/src/emucore/OSystem.hxx
index 910916f27..73e8d3f2a 100644
--- a/src/emucore/OSystem.hxx
+++ b/src/emucore/OSystem.hxx
@@ -386,6 +386,13 @@ class OSystem
*/
void logMessage(const string& message, uInt8 level);
+ /**
+ Get the system messages logged up to this point.
+
+ @return The list of log messages
+ */
+ const string& logMessages() const { return myLogMessages; }
+
public:
//////////////////////////////////////////////////////////////////////
// The following methods are system-specific and can be overrided in
@@ -520,6 +527,9 @@ class OSystem
// Pointer to the StateManager object
StateManager* myStateManager;
+ // The list of log messages
+ string myLogMessages;
+
// Maximum dimensions of the desktop area
uInt32 myDesktopWidth, myDesktopHeight;
diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx
index e7b844b87..a141baa00 100644
--- a/src/emucore/Settings.cxx
+++ b/src/emucore/Settings.cxx
@@ -54,6 +54,7 @@ Settings::Settings(OSystem* osystem)
setInternal("fullscreen", "0");
setInternal("fullres", "auto");
setInternal("center", "false");
+ setInternal("grabmouse", "true");
setInternal("palette", "standard");
setInternal("colorloss", "false");
setInternal("timing", "sleep");
@@ -370,6 +371,7 @@ void Settings::usage()
<< " -fullscreen <1|0|-1> Use fullscreen mode (1 or 0), or disable switching to fullscreen entirely\n"
<< " -fullres