From 26b1654aa26914aee86d52e5730cd77f1563f238 Mon Sep 17 00:00:00 2001 From: stephena Date: Sat, 21 Aug 2010 23:08:44 +0000 Subject: [PATCH] Some minor UI improvements to the InputSettings dialog; renamed the 'Virtual Devs' tab to 'Devices & Ports'. Updated documentation and snapshots for this change. Added Halo 2600 ROM info to internal properties database. Increased default setting for 'joydeadzone' from 0 to 13. This means the default deadzone is somewhere around half the axis range (~16500). Fixed behaviour of hat events; events weren't actually being turned off until the stick was centered. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- Changes.txt | 16 +++++- docs/graphics/eventmapping.png | Bin 6274 -> 6426 bytes docs/graphics/eventmapping_devsports.png | Bin 0 -> 6919 bytes docs/graphics/eventmapping_remap.png | Bin 6192 -> 6293 bytes docs/graphics/eventmapping_virtualdevs.png | Bin 6847 -> 0 bytes docs/graphics/options_input.png | Bin 6274 -> 6387 bytes docs/index.html | 8 +-- src/emucore/DefProps.hxx | 3 +- src/emucore/EventHandler.cxx | 59 +++++++++------------ src/emucore/EventHandler.hxx | 9 ---- src/emucore/Settings.cxx | 2 +- src/emucore/stella.pro | 6 +++ src/gui/InputDialog.cxx | 12 ++--- src/gui/InputDialog.hxx | 2 +- 14 files changed, 59 insertions(+), 58 deletions(-) create mode 100644 docs/graphics/eventmapping_devsports.png delete mode 100644 docs/graphics/eventmapping_virtualdevs.png diff --git a/Changes.txt b/Changes.txt index 1d1d8924d..d640e1b41 100644 --- a/Changes.txt +++ b/Changes.txt @@ -12,6 +12,20 @@ Release History =========================================================================== +3.2 to 3.2.1: (August x, 2010) + + * Improved behaviour of joystick 'hat' movement. This should fix bugs + most visible in Yars' Revenge. + + * Fixed bug in debugger rewind states; bankswitching wasn't being + performed during the rewind. Related to this, fixed a similar issue + with the debugger 'loadstate' and 'savestate' commands. + + * Added game properties info for the newly released 'Halo 2600' ROM. + +-Have fun! + + 3.1.2 to 3.2: (August 20, 2010) * NOTE: because of the many event-related changes in this release, all @@ -111,8 +125,6 @@ * Updated included ZLib to latest release version (1.2.5). --Have fun! - 3.1.1 to 3.1.2: (May 3, 2010) diff --git a/docs/graphics/eventmapping.png b/docs/graphics/eventmapping.png index bfe661f35ddf2805b267667c3a7c3819881dccc3..f982f9ec8fb403a3cce937520c3d56a860f89315 100644 GIT binary patch literal 6426 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 XP)w>Wzg-3Vmjck!HNIZ1?Hu=iBh!@I literal 6274 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 RzeoXqvA+40QoUPI{{}vUV;leg literal 0 HcmV?d00001 diff --git a/docs/graphics/eventmapping_remap.png b/docs/graphics/eventmapping_remap.png index 6f74043a1431f1241d2b184b405b470dd3a2ad08..25e7bcf70c84fa27f2463312be5f710bb10574c3 100644 GIT binary patch literal 6293 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 HLPh--=d}eQ literal 6192 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 VU19qHBsi-FY%V%nAXp$0{s$ol7N7tC diff --git a/docs/graphics/eventmapping_virtualdevs.png b/docs/graphics/eventmapping_virtualdevs.png deleted file mode 100644 index 9c70a00ee71c516b3647d8c52a7cf86dadaead78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6847 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

A multi-platform Atari 2600 VCS emulator

-

Release 3.2

+

Release 3.2.1



User's Guide

@@ -2341,10 +2341,10 @@

-

Virtual devices can be configured under the 'Virtual Devs' tab, shown below:

+

Device and port settings can be configured under the 'Devices & Ports' tab, shown below:

- +
     @@ -2541,7 +2541,7 @@ this is outside the scope of this document). Once your operating system properly detects the AtariVox, you will need to tell Stella which serial port it is connected to. This is done by using the '-avoxport' commandline - argument, or by setting it in the UI under the 'Virtual Devs' tab in + argument, or by setting it in the UI under the 'Devices & Ports' tab in Advanced Configuration - Input Devices.

Note that you must use the entire name of the port as specified by diff --git a/src/emucore/DefProps.hxx b/src/emucore/DefProps.hxx index 29dbba70f..d17ea5501 100644 --- a/src/emucore/DefProps.hxx +++ b/src/emucore/DefProps.hxx @@ -27,7 +27,7 @@ regenerated and the application recompiled. */ -#define DEF_PROPS_SIZE 3240 +#define DEF_PROPS_SIZE 3241 static const char* DefProps[DEF_PROPS_SIZE][20] = { { "000509d1ed2b8d30a9d94be1b3b5febb", "Greg Zumwalt", "", "Jungle Jane (2003) (Greg Zumwalt) (Hack)", "Hack of Pitfall!", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, @@ -983,6 +983,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = { { "4ac9f40ddfcf194bd8732a75b3f2f214", "Atari, Stephen Keith, Preston Stuart", "CX26106", "Grover's Music Maker (12-29-1982) (Atari) (Prototype)", "Uses Kids/Keypad Controllers", "Prototype", "", "", "", "", "", "", "KEYBOARD", "KEYBOARD", "", "", "", "", "", "" }, { "4ae8c76cd6f24a2e181ae874d4d2aa3d", "", "", "Flash Gordon (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "4af4103759d603c82b1c9c5acd2d8faf", "Imagic, Bob Smith", "720114-2A, 13207, EIZ-001-04I", "Moonsweeper (1983) (Imagic) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" }, + { "4afa7f377eae1cafb4265c68f73f2718", "Ed Fries", "", "Halo 2600 (2010) (Ed Fries)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "4afe528a082f0d008e7319ebd481248d", "", "", "Multi-Color Demo 1 (Bob Colbert) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "4b143d7dcf6c96796c37090cba045f4f", "Atari, Jim Huether - Sears", "CX2644 - 6-99824", "Flag Capture (1978) (Atari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "4b205ef73a5779acc5759bde3f6d33ed", "", "", "Berzerk (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, diff --git a/src/emucore/EventHandler.cxx b/src/emucore/EventHandler.cxx index 3be2e3dcd..04313ac3b 100644 --- a/src/emucore/EventHandler.cxx +++ b/src/emucore/EventHandler.cxx @@ -848,18 +848,32 @@ void EventHandler::poll(uInt64 time) // Preprocess all hat events, converting to Stella JoyHat type // Generate multiple equivalent hat events representing combined direction // when we get a diagonal hat event - if(value == SDL_HAT_CENTERED) - handleJoyHatEvent(stick, hat, EVENT_HATCENTER); - else + if(myState == S_EMULATE) { - if(value & SDL_HAT_UP) - handleJoyHatEvent(stick, hat, EVENT_HATUP); - if(value & SDL_HAT_RIGHT) - handleJoyHatEvent(stick, hat, EVENT_HATRIGHT); - if(value & SDL_HAT_DOWN) - handleJoyHatEvent(stick, hat, EVENT_HATDOWN); - if(value & SDL_HAT_LEFT) - handleJoyHatEvent(stick, hat, EVENT_HATLEFT); + handleEvent(myJoyHatTable[stick][hat][EVENT_HATUP][kEmulationMode], + value & SDL_HAT_UP); + handleEvent(myJoyHatTable[stick][hat][EVENT_HATRIGHT][kEmulationMode], + value & SDL_HAT_RIGHT); + handleEvent(myJoyHatTable[stick][hat][EVENT_HATDOWN][kEmulationMode], + value & SDL_HAT_DOWN); + handleEvent(myJoyHatTable[stick][hat][EVENT_HATLEFT][kEmulationMode], + value & SDL_HAT_LEFT); + } + else if(myOverlay != NULL) + { + if(value == SDL_HAT_CENTERED) + myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATCENTER); + else + { + if(value & SDL_HAT_UP) + myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATUP); + if(value & SDL_HAT_RIGHT) + myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATRIGHT); + if(value & SDL_HAT_DOWN) + myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATDOWN); + if(value & SDL_HAT_LEFT) + myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATLEFT); + } } break; // SDL_JOYHATMOTION } @@ -911,29 +925,6 @@ void EventHandler::poll(uInt64 time) myEvent->set(Event::MouseAxisYValue, 0); } -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void EventHandler::handleJoyHatEvent(int stick, int hat, JoyHat value) -{ -#ifdef JOYSTICK_SUPPORT - if(myState == S_EMULATE) - { - if(value == EVENT_HATCENTER) - { - // Turn off all associated events, since we don't know exactly - // which one was previously activated. - handleEvent(myJoyHatTable[stick][hat][EVENT_HATUP] [kEmulationMode], 0); - handleEvent(myJoyHatTable[stick][hat][EVENT_HATDOWN] [kEmulationMode], 0); - handleEvent(myJoyHatTable[stick][hat][EVENT_HATLEFT] [kEmulationMode], 0); - handleEvent(myJoyHatTable[stick][hat][EVENT_HATRIGHT][kEmulationMode], 0); - } - else - handleEvent(myJoyHatTable[stick][hat][value][kEmulationMode], 1); - } - else if(myOverlay != NULL) - myOverlay->handleJoyHatEvent(stick, hat, value); -#endif -} - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void EventHandler::handleEvent(Event::Type event, int state) { diff --git a/src/emucore/EventHandler.hxx b/src/emucore/EventHandler.hxx index 1117e7fc1..dff2927c4 100644 --- a/src/emucore/EventHandler.hxx +++ b/src/emucore/EventHandler.hxx @@ -336,15 +336,6 @@ class EventHandler void allowAllDirections(bool allow) { myAllowAllDirectionsFlag = allow; } private: - /** - Send a joystick hat event to the handler - - @param stick The joystick number - @param hat The joystick hat - @param value The value on the given hat - */ - void handleJoyHatEvent(int stick, int hat, JoyHat value); - /** Detects and changes the eventhandler state diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index f8d7b28f3..9a15107af 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -81,7 +81,7 @@ Settings::Settings(OSystem* osystem) setInternal("joyaxismap", ""); setInternal("joyhatmap", ""); setInternal("combomap", ""); - setInternal("joydeadzone", "0"); + setInternal("joydeadzone", "13"); setInternal("joyallow4", "false"); setInternal("usemouse", "true"); setInternal("pspeed", "6"); diff --git a/src/emucore/stella.pro b/src/emucore/stella.pro index e46ae4ee3..9abeab3bb 100644 --- a/src/emucore/stella.pro +++ b/src/emucore/stella.pro @@ -19607,3 +19607,9 @@ "Cartridge.Rarity" "Homebrew" "Display.Phosphor" "YES" "" + +"Cartridge.MD5" "4afa7f377eae1cafb4265c68f73f2718" +"Cartridge.Manufacturer" "Ed Fries" +"Cartridge.Name" "Halo 2600 (2010) (Ed Fries)" +"Cartridge.Rarity" "Homebrew" +"" diff --git a/src/gui/InputDialog.cxx b/src/gui/InputDialog.cxx index 97802f217..fcc316823 100644 --- a/src/gui/InputDialog.cxx +++ b/src/gui/InputDialog.cxx @@ -48,7 +48,7 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent, WidgetArray wid; // Set real dimensions - _w = BSPF_min(48 * fontWidth + 10, max_w); + _w = BSPF_min(49 * fontWidth + 10, max_w); _h = BSPF_min(12 * (lineHeight + 4) + 10, max_h); // The tab widget @@ -78,8 +78,8 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent, myTab->setParentWidget(tabID, myMenuEventMapper); addToFocusList(myMenuEventMapper->getFocusList(), tabID); - // 3) Virtual device support - addVDeviceTab(font); + // 3) Devices & ports + addDevicePortTab(font); // Finalize the tabs, and activate the first tab myTab->activateTabs(); @@ -101,7 +101,7 @@ InputDialog::~InputDialog() } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void InputDialog::addVDeviceTab(const GUI::Font& font) +void InputDialog::addDevicePortTab(const GUI::Font& font) { const int lineHeight = font.getLineHeight(), fontWidth = font.getMaxCharWidth(), @@ -110,8 +110,8 @@ void InputDialog::addVDeviceTab(const GUI::Font& font) WidgetArray wid; StringMap items; - // Virtual device/ports - tabID = myTab->addTab("Virtual Devs"); + // Devices/ports + tabID = myTab->addTab("Devices & Ports"); // Stelladaptor mappings xpos = 5; ypos = 5; diff --git a/src/gui/InputDialog.hxx b/src/gui/InputDialog.hxx index 3582da982..9281b81d7 100644 --- a/src/gui/InputDialog.hxx +++ b/src/gui/InputDialog.hxx @@ -52,7 +52,7 @@ class InputDialog : public Dialog void setDefaults(); private: - void addVDeviceTab(const GUI::Font& font); + void addDevicePortTab(const GUI::Font& font); private: enum {