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 bfe661f35..f982f9ec8 100644 Binary files a/docs/graphics/eventmapping.png and b/docs/graphics/eventmapping.png differ diff --git a/docs/graphics/eventmapping_devsports.png b/docs/graphics/eventmapping_devsports.png new file mode 100644 index 000000000..c61389f5b Binary files /dev/null and b/docs/graphics/eventmapping_devsports.png differ diff --git a/docs/graphics/eventmapping_remap.png b/docs/graphics/eventmapping_remap.png index 6f74043a1..25e7bcf70 100644 Binary files a/docs/graphics/eventmapping_remap.png and b/docs/graphics/eventmapping_remap.png differ diff --git a/docs/graphics/eventmapping_virtualdevs.png b/docs/graphics/eventmapping_virtualdevs.png deleted file mode 100644 index 9c70a00ee..000000000 Binary files a/docs/graphics/eventmapping_virtualdevs.png and /dev/null differ diff --git a/docs/graphics/options_input.png b/docs/graphics/options_input.png index bfe661f35..9cb4531e4 100644 Binary files a/docs/graphics/options_input.png and b/docs/graphics/options_input.png differ diff --git a/docs/index.html b/docs/index.html index 02536059e..0313bc9e1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,7 +10,7 @@

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 {