mirror of https://github.com/stella-emu/stella.git
OK, this is the first pass at some love for the OSX port, which doesn't
get nearly enough attention. This is about to change, since I'm moving to using it full time at work (still Linux at home though!). The 'Control' key modifier for OSX is now the actual Control key, just like on every other platform (instead of Command). The 'Alt' key modifier for OSX is now the Command key (instead of Shift-Cmd). Maybe in the past it made sense for this, when keyboards weren't the same between platforms, but that's no longer the case. And since Stella requires at least OSX 10.4, everyone using it from this point on probably has newer hardware. Still TODO is consider a few special keys for OSX (minimize, hide, etc). Updated documentation for new key combos, as well as the recent build and debugger improvements. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1906 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
3501fdcc3b
commit
d8bca7a519
133
docs/index.html
133
docs/index.html
|
@ -305,15 +305,16 @@
|
|||
<p>
|
||||
<h2><b>Macintosh</b></h2>
|
||||
|
||||
<p>The Mac version of Stella is designed to work on a Power Macintosh with
|
||||
<p>The Mac version of Stella is designed to work on an Apple Macintosh with
|
||||
the following:</p>
|
||||
<ul>
|
||||
<li>Mac OSX 10.3 or Above</li>
|
||||
<li>500 MHz G4 PPC/Intel processor or above (Stella <b>may</b> work with a G3
|
||||
processor, but no hardware is available for testing)</li>
|
||||
<li>OpenGL capable video card. Software rendering mode is still available,
|
||||
but as of OSX 10.4 is substandard compared to OpenGL.</li>
|
||||
<li>Xcode 3.0 is required to compile the Stella source code</li>
|
||||
<li>Mac OSX 10.4 (Tiger) or above</li>
|
||||
<li>PPC G4 or Intel processor, 500MHz or above</li>
|
||||
<li>OpenGL capable video card; software rendering mode is still available,
|
||||
but as of OSX 10.4 is substandard compared to OpenGL</li>
|
||||
<li>Xcode 3.2 is required to compile the Stella source code (SDL 1.2.14 also
|
||||
required to compile the 64-bit version)</li>
|
||||
<li>The 64-bit version requires at minimum Snow Leopard (10.6) and Intel CPU</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
@ -334,10 +335,9 @@
|
|||
<h2><b>Other</b></h2>
|
||||
|
||||
<p>Stella is extremely portable, and in its lifetime has been ported to almost every
|
||||
platform where the SDL library exists. It is 32/64 bit clean in Linux/Unix and Windows
|
||||
(win32/x64), and is expected to be compatible with 64-bit OSX as well. The Stella
|
||||
team is interested in hearing about any problems you may encounter with diverse
|
||||
operating systems and CPU types.</p>
|
||||
platform where the SDL library exists. It is 32/64 bit clean in Linux/Unix, Mac OSX
|
||||
and Windows. The Stella team is interested in hearing about any problems you may
|
||||
encounter with diverse operating systems and CPU types.</p>
|
||||
|
||||
|
||||
<!-- ///////////////////////////////////////////////////////////////////////// -->
|
||||
|
@ -417,7 +417,7 @@
|
|||
<li><b>Binary DMG file</b> (StellaOSX<i>release</i>.dmg)
|
||||
<ol>
|
||||
<li>Mount the disk image, then copy the StellaOSX<i>release</i> folder to
|
||||
your hard drive.</li>
|
||||
your hard drive</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><b>Compressed tarball : building from source code</b> (stella-<i>release</i>-src.tar.gz)
|
||||
|
@ -425,10 +425,18 @@
|
|||
<li>Extract files from the distribution using an archiving program that supports
|
||||
gzipped tar files</li>
|
||||
<li>Open the <b>stella-<i>release</i>/src/macosx/stella.xcodeproj</b>
|
||||
file using Xcode 3.0</li>
|
||||
file using Xcode 3.2</li>
|
||||
<li>Make sure you have the SDL framework installed where Xcode can find it</li>
|
||||
<li>Build the 'Stella' project</li>
|
||||
<li>Copy the <b>StellaOSX.app</b> package somewhere on your system</li>
|
||||
<li>For installation:
|
||||
<ul>
|
||||
<li>Run the script <b>Create_build.sh</b>, located in the src/macosx directory.
|
||||
This will create a DMG file on your desktop.</li>
|
||||
<b>OR</b>
|
||||
<li>Copy the <b>StellaOSX.app</b> package somewhere on your system</li>
|
||||
</ul>
|
||||
<li>For compiling the Intel version only, open the <b>stella-<i>release</i>/src/macosx/stella_intel.xcodeproj</b> file instead, and continue from
|
||||
step 2 above.</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -750,6 +758,14 @@
|
|||
<td>Enable/disable the PAL color-loss effect.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-framerate <number></pre></td>
|
||||
<td>Display the given number of frames per second. Normally, Stella
|
||||
will determine framerate based on number of scanlines.
|
||||
Setting this to 0 automatically enables auto-frame
|
||||
calculation (ie, framerate based on scanlines).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-timing <sleep|busy></pre></td>
|
||||
<td>Determines type of wait to perform between processing frames.
|
||||
|
@ -761,11 +777,10 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-framerate <number></pre></td>
|
||||
<td>Display the given number of frames per second. Normally, Stella
|
||||
will determine framerate based on number of scanlines.
|
||||
Setting this to 0 automatically enables auto-frame
|
||||
calculation (ie, framerate based on scanlines).</td>
|
||||
<td><pre>-uimessages <1|0></pre></td>
|
||||
<td>Enable or disable display of message in the UI. Note that messages
|
||||
indicating serious errors override this setting, and are always
|
||||
shown.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -1030,8 +1045,8 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tiafloat <1|0></pre></td>
|
||||
<td>Set unused TIA pins to be floating on a read/peek.</td>
|
||||
<td><pre>-tiadriven <1|0></pre></td>
|
||||
<td>Set unused TIA pins to be randomly driven high or low on a read/peek.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -1411,7 +1426,7 @@
|
|||
<tr>
|
||||
<td>Pause/resume emulation</td>
|
||||
<td>Pause</td>
|
||||
<td>Pause</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@ -1824,139 +1839,139 @@
|
|||
<tr>
|
||||
<td>Set "Display.YStart" to next <i>larger</i> value</td>
|
||||
<td>Alt + PageUp</td>
|
||||
<td>Shift-Cmd + PageUp</td>
|
||||
<td>Cmd + PageUp</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set "Display.YStart" to next <i>smaller</i> value</td>
|
||||
<td>Alt + PageDown</td>
|
||||
<td>Shift-Cmd + PageDown</td>
|
||||
<td>Cmd + PageDown</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set "Display.Height" to next <i>larger</i> value</td>
|
||||
<td>Control + PageUp</td>
|
||||
<td>Cmd + PageUp</td>
|
||||
<td>Control + PageUp</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set "Display.Height" to next <i>smaller</i> value</td>
|
||||
<td>Control + PageDown</td>
|
||||
<td>Cmd + PageDown</td>
|
||||
<td>Control + PageDown</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle frame stats (scanline count/fps/bs type/etc)</td>
|
||||
<td>Alt + l</td>
|
||||
<td>Shift-Cmd + l</td>
|
||||
<td>Cmd + l</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Player0 object</td>
|
||||
<td>Alt + z</td>
|
||||
<td>Shift-Cmd + z</td>
|
||||
<td>Cmd + z</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Player1 object</td>
|
||||
<td>Alt + x</td>
|
||||
<td>Shift-Cmd + x</td>
|
||||
<td>Cmd + x</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Missile0 object</td>
|
||||
<td>Alt + c</td>
|
||||
<td>Shift-Cmd + c</td>
|
||||
<td>Cmd + c</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Missile1 object</td>
|
||||
<td>Alt + v</td>
|
||||
<td>Shift-Cmd + v</td>
|
||||
<td>Cmd + v</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Ball object</td>
|
||||
<td>Alt + b</td>
|
||||
<td>Shift-Cmd + b</td>
|
||||
<td>Cmd + b</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Playfield object</td>
|
||||
<td>Alt + n</td>
|
||||
<td>Shift-Cmd + n</td>
|
||||
<td>Cmd + n</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Player0 collisions</td>
|
||||
<td>Shift-Alt + z</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + z</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Player1 collisions</td>
|
||||
<td>Shift-Alt + x</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + x</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Missile0 collisions</td>
|
||||
<td>Shift-Alt + c</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + c</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Missile1 collisions</td>
|
||||
<td>Shift-Alt + v</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + v</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Ball collisions</td>
|
||||
<td>Shift-Alt + b</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + b</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA Playfield collisions</td>
|
||||
<td>Shift-Alt + n</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + n</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA HMOVE blanks</td>
|
||||
<td>Alt + m</td>
|
||||
<td>Shift-Cmd + m</td>
|
||||
<td>Cmd + m</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle TIA 'Fixed Debug Colors' mode</td>
|
||||
<td>Alt + Comma</td>
|
||||
<td>Shift-Cmd + Comma</td>
|
||||
<td>Cmd + Comma</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Turn all TIA objects off</td>
|
||||
<td>Alt + .</td>
|
||||
<td>Shift-Cmd + .</td>
|
||||
<td>Cmd + .</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Turn all TIA objects on</td>
|
||||
<td>Alt + /</td>
|
||||
<td>Shift-Cmd + /</td>
|
||||
<td>Cmd + /</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Turn all TIA collisions off</td>
|
||||
<td>Shift-Alt + .</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + .</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Turn all TIA collisions on</td>
|
||||
<td>Shift-Alt + /</td>
|
||||
<td>TODO</td>
|
||||
<td>Shift-Cmd + /</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@ -1990,68 +2005,68 @@
|
|||
<tr>
|
||||
<td>Decrease volume (*)</td>
|
||||
<td>Alt + [</td>
|
||||
<td>Shift-Cmd + [</td>
|
||||
<td>Cmd + [</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Increase volume (*)</td>
|
||||
<td>Alt + ]</td>
|
||||
<td>Shift-Cmd + ]</td>
|
||||
<td>Cmd + ]</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Grab mouse (keep mouse in game window)</td>
|
||||
<td>Control + g</td>
|
||||
<td>Cmd + g</td>
|
||||
<td>Control + g</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle display palette (<i>NTSC/PAL/SECAM</i>)</td>
|
||||
<td>Control + f</td>
|
||||
<td>Cmd + f</td>
|
||||
<td>Control + f</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Save current properties to a new properties file</td>
|
||||
<td>Control + s</td>
|
||||
<td>Cmd + s</td>
|
||||
<td>Control + s</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set mouse to emulate paddle 0</td>
|
||||
<td>Control + 0</td>
|
||||
<td>Cmd + 0</td>
|
||||
<td>Control + 0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set mouse to emulate paddle 1</td>
|
||||
<td>Control + 1</td>
|
||||
<td>Cmd + 1</td>
|
||||
<td>Control + 1</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set mouse to emulate paddle 2</td>
|
||||
<td>Control + 2</td>
|
||||
<td>Cmd + 2</td>
|
||||
<td>Control + 2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set mouse to emulate paddle 3</td>
|
||||
<td>Control + 3</td>
|
||||
<td>Cmd + 3</td>
|
||||
<td>Control + 3</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Reload current ROM (singlecart ROM, TIA mode)<br>
|
||||
Load next game in ROM (multicart ROM, TIA mode)</td>
|
||||
<td>Control + r</td>
|
||||
<td>Cmd + r</td>
|
||||
<td>Control + r</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Reload ROM listing (ROM launcher mode)</td>
|
||||
<td>Control + r</td>
|
||||
<td>Cmd + r</td>
|
||||
<td>Control + r</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -2069,19 +2084,19 @@
|
|||
<tr>
|
||||
<td>Toggle 'phosphor' effect</td>
|
||||
<td>Alt + p</td>
|
||||
<td>Shift-Cmd + p</td>
|
||||
<td>Cmd + p</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle palette</td>
|
||||
<td>Control + p</td>
|
||||
<td>Cmd + p</td>
|
||||
<td>Control + p</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle PAL color-loss effect</td>
|
||||
<td>Control + l</td>
|
||||
<td>Cmd + l</td>
|
||||
<td>Control + l</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
@ -330,10 +330,17 @@ void EventHandler::poll(uInt64 time)
|
|||
|
||||
// An attempt to speed up event processing
|
||||
// All SDL-specific event actions are accessed by either
|
||||
// Control/Cmd or Alt/Shift-Cmd keys. So we quickly check for those.
|
||||
// Control or Alt/Cmd keys. So we quickly check for those.
|
||||
if(kbdAlt(mod) && state)
|
||||
{
|
||||
#ifdef MAC_OSX
|
||||
// These keys work in all states
|
||||
if(key == SDLK_q)
|
||||
{
|
||||
handleEvent(Event::Quit, 1);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if(key == SDLK_RETURN)
|
||||
{
|
||||
myOSystem->frameBuffer().toggleFullscreen();
|
||||
|
@ -343,7 +350,6 @@ void EventHandler::poll(uInt64 time)
|
|||
{
|
||||
switch(int(key))
|
||||
{
|
||||
#ifndef MAC_OSX
|
||||
case SDLK_EQUALS:
|
||||
myOSystem->frameBuffer().changeVidMode(+1);
|
||||
break;
|
||||
|
@ -351,7 +357,7 @@ void EventHandler::poll(uInt64 time)
|
|||
case SDLK_MINUS:
|
||||
myOSystem->frameBuffer().changeVidMode(-1);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case SDLK_LEFTBRACKET:
|
||||
myOSystem->sound().adjustVolume(-1);
|
||||
break;
|
||||
|
@ -490,26 +496,12 @@ void EventHandler::poll(uInt64 time)
|
|||
myOSystem->frameBuffer().grabMouse(myGrabMouseFlag);
|
||||
}
|
||||
}
|
||||
#ifdef MAC_OSX
|
||||
else if(key == SDLK_RETURN)
|
||||
{
|
||||
myOSystem->frameBuffer().toggleFullscreen();
|
||||
}
|
||||
#endif
|
||||
// These only work when in emulation mode
|
||||
else if(myState == S_EMULATE)
|
||||
{
|
||||
switch(int(key))
|
||||
{
|
||||
#ifdef MAC_OSX
|
||||
case SDLK_EQUALS:
|
||||
myOSystem->frameBuffer().changeVidMode(+1);
|
||||
break;
|
||||
|
||||
case SDLK_MINUS:
|
||||
myOSystem->frameBuffer().changeVidMode(-1);
|
||||
break;
|
||||
|
||||
case SDLK_h:
|
||||
case SDLK_m:
|
||||
case SDLK_SLASH:
|
||||
|
|
|
@ -189,17 +189,13 @@ class EventHandler
|
|||
#ifndef MAC_OSX
|
||||
return (mod & KMOD_ALT);
|
||||
#else
|
||||
return ((mod & KMOD_META) && (mod & KMOD_SHIFT));
|
||||
return (mod & KMOD_META);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline bool kbdControl(int mod)
|
||||
{
|
||||
#ifndef MAC_OSX
|
||||
return (mod & KMOD_CTRL) > 0;
|
||||
#else
|
||||
return ((mod & KMOD_META) && !(mod & KMOD_SHIFT));
|
||||
#endif
|
||||
}
|
||||
|
||||
inline bool kbdShift(int mod)
|
||||
|
|
|
@ -1797,7 +1797,7 @@
|
|||
2D91752209BA903B0026E9FF /* Development */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
.,
|
||||
"$(HOME)/Library/Frameworks",
|
||||
|
@ -1810,7 +1810,7 @@
|
|||
2D91752309BA903B0026E9FF /* Deployment */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
.,
|
||||
"$(HOME)/Library/Frameworks",
|
||||
|
@ -1826,7 +1826,7 @@
|
|||
2D91752409BA903B0026E9FF /* Default */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.4;
|
||||
SDKROOT = macosx10.4;
|
||||
|
|
Loading…
Reference in New Issue