Crosswords 4.3 adds Bluetooth, one-handed navigation

SourceForge.net Logo

This page is about the ongoing beta for Crosswords 4.3 for PalmOS, which adds support for games between devices using Bluetooth. Please read the known problems below before downloading (ARM or 68K) and installing the beta.

Then please report lots of bugs. :-)

Contents

Release history

April 12 2008: Beta 6 released (rev 2141). This release adds drag-and-drop. Move tiles from the tray to the board, or vice-versa, by dragging them.
There's no change to the bluetooth code.

Jan 7 2008: Beta 5 released (rev 2038). This release fixes a bug when switching roles on starting a new game (by checking whether it was still appropriate before honoring a fired timer) and adds a couple of error messages to help users understand how to start a new game. There's also a cosmetic change unrelated to Bluetooth.

Dec 16 2007: Beta 4 released (rev 2014). Fixed a number of bugs, including a serious one introduced in beta 3 where all preference changes were ignored. The bigger change, though, is adding a preference whereby users can ask to confirm every connection attempt to a remote device (via Bluetooth.) This will allow them to ensure that there's an app running on Treo650 and so that they don't crash. The default value of this preference is True. Reporting of phonies had been broken for a while, but is no more.

Dec 8 2007: Beta 3 released (rev 2003). Fixed crasher opening after exit with newgame dialog in front (also fixed in 4.2.2); fixed problem reconnecting after switching roles; don't show Bluetooth connect option on devices that don't support it; drop incoming IR messages if the current game is via Bluetooth.

Dec 7 2007: Beta 2 released (rev 1995). Fixed a crasher in b1 that occurred when you switched from a connected BT game to a standalone game.

Dec 6 2007: Beta 1 released (rev 1994). Two major changes were to work around bugs in the Treo650's BT library: register and look for SDP records uniquely identifying Crosswords running on the host device; and force user to confirm reconnects when remote device isn't running Crosswords. In addition, fixed a bug preventing reconnect timers from firing under certain circumstances.

May 27 2007: Alpha 10 released (rev 1940). Two changes from 4.2: don't misdraw arrow when removing placed tile from flipped board; don't reveal opponent's tray when there are two or more human players on one device. Also, to mitigate crashing Treo650s I'm using a timer to attempt to connect from guest to host every eight seconds rather than as quickly as possible.

April 28 2007: Alpha 9 released (rev 1930). One change fixing a crash: don't use the navigation APIs for Treos on Tungstens.

April 19 2007: Alpha 8 released (rev 1924). Fix bugs (including crashers) particularly around transitions between single-device games and games using BT. Prevent PalmOS from asking user to turn BT on more than once. Other non-BT bugs.

17 March 2007: Alpha 7 released (rev 1881). ARM support added for Bluetooth library, so there is now a fully-functional ARM version.

February 2007: Alpha 5 released (rev 1859). Uses icons instead of letters to indicate BT connection status, and greatly improves how quickly connections are re-established. But the change means that a5 cannot play against earlier versions: all devices in a game must be running a5 or better.

20 November 2006: Alpha 3 released for PalmOS. It makes some improvements in reconnecting when one Bluetooth device quits and restarts Crosswords in the middle of a game. But this release is mostly about using the five-way instead of the stylus on the main board. It's now possible to play an entire game without touching the screen. Also fixed a couple of bugs, including that the robot was playing phonies. Please note: Alpha 3 cannot read games saved by alpha 2. Please delete alpha 2 before installing this version.

29 October 2006: Alpha 2 released for PalmOS. No major changes to Bluetooth play. Instead I added support for five-way (one-handed) navigation within dialogs. It was annoying having to grab the stylus to switch roles. I also added a new preference checkbox that lets you hide the values of tiles in the tray -- since some people find them distracting.

14 October 2006: Alpha 1 released for PalmOS. Crosswords on PalmOS can play against Crosswords on another PalmOS device or on a desktop running Linux, demonstrating that cross-platform Bluetooth play works.

Known problems

  • Upgrade is not reversible. While this version can read games saved by previous versions, the reverse is not true. Once you install 4.3 you will have to remove it using the PalmOS "Delete" feature before you can go back to the old version (though you shouldn't need to). Delete will remove your saved games.
  • Only two devices can play so far. Support for up to four per game is planned, though perhaps not before 4.3.1.
  • Bluetooth on the Treo650 is buggy: you can crash a freshly hard-reset 650 (one without any non-Palm-supplied software on it) by attempting to connect to it when no listening application is running. This means that if Crosswords is running as guest on another device and tries to contact the host on a 650 before it is listening the 650 can crash. For beta 1 I've been able to reduce but not eliminate crashes by treading lightly around 650s, and am considering putting up warning messages when users select BT when starting a new game on these old but common Treos.

Please contact me to be notified of future releases, or sign up to be notified on sourceforge.

Getting started using Bluetooth

Here's how to connect two devices for your first game over Bluetooth. If you've played between devices using beaming the later steps will be familiar.

  1. Make sure your devices are paired, or that they are "visible". Two copies of Crosswords can only connect if the one made "Guest" can see the one made "Host". (If you've never paired your device before, see your device documentation for instructions -- or just puzzle through it: it's not hard. I'd like to provide a link here to instructions, but couldn't find any good ones online.)
  2. If this is your first game, you'll see the "Game options" dialog immediately. Otherwise, select the "New game..." menu item. After saving your current game (or not), you'll get a dialog that looks like this:
  3. Tap either "Host" or "Guest". Either will give you a "Connections" dialog. Choose "Bluetooth" from the "Connect via:" dropdown. In the Host case, that's all there is to do (because Hosts just listen for Guests to connect.) In the Guest case, you need to name the Host:
  4. (Guest case only) Tap the trigger to the right of the "Host device:" label. In the Discovery dialog that comes up, select the name of the device the host will be on, and tap "Ok". Now you should see that name in the trigger.
  5. The "Ask before connecting Bluetooth" checkbox causes Crosswords to confirm with you each time the Guest attempts to establish a connection with the Host. Typically this happens at the beginning of a game. Since the easiest way to crash PalmOS's Bluetooth software is to attempt to connect to a device that isn't ready, I recommend that you leave this checked at first. You can always uncheck it via the Preferences Dialog.
  6. Dismiss the "Connections" dialog by tapping "Ok"
  7. Back in the "Game options" dialog, set up your players. If you're the Guest, set "Local players" to the number on your device alone. If you're the Host, set "Total players" to the number in the game from both devices. Check the "Remote" checkbox for at least one of them -- the same number as are on the Guest device.
  8. Now tap "Ok" on both.
  9. Take your turns, paying attention to the status area.

Connection status

So you can tell whether your devices are properly connected, connection status is displayed via icons beside the lower-right corner of the board. Here are their meanings.

icononmeans
noneeitherGame not using BT; BT turned off for device
eitherNot connected
GuestTrying to connect
HostAccepting connections
eitherFully connected

Hints and workarounds

  • You can quit Crosswords and restart if you're the Host and the Guest will have no problem reconnecting once you do. But if you're the Guest and you quit and you're using a Treo650, it will take the Host around 30 seconds to recognize you once you start Crosswords again. Since this is not a problem on newer devices I believe it is due to an OS bug that has been fixed. I have not yet found a workaround.
  • If your connection is lost or the device seems to be struggling to get one, try quitting Crosswords and restarting.
  • If the Guest device starts first, or the Host quits mid-game, the Guest will keep trying to connect. If the Host device is a Treo650, this will cause dialogs to appear on it until Crosswords is restarted or the device resets. Since Beta 1 a dialog goes up before each connetion attempt. Don't use "Resend" until the other device is ready (especially if it's a Treo650 or similarly old device.) Wait for the other device to be ready.
  • Generally speaking, when the Host and Guest are both showing the "fully connected" in their connection status areas, they really are connected. If moves still don't seem to be getting transmitted, try using the "Resend messages" item on the Game menu. Or quit Crosswords and restart.
  • If one device is showing the fully connected icon while the other is trying to connect, the connection will not succeed. Wait (up to 30 seconds on older Treos) for the fully-connected device to figure out that its partner is gone, or if you are impatient quit and restart Crosswords on that device.