xwords/wince
ehouse 8f08667f5d Lots more changes, and some reversions. Win32, gtk and ncurses all
work now including saving/opening games.  Network play probably
doesn't as writing/reading a dict from stream has to change.  It's
doubtful patches from this branch will be merged.  Rather, I'll take
the concepts and crib some code when re-implementing.  Concepts:
XP_UCHAR becomes UTF-8 on both platforms, and on wince we translate to
wchar_t just as now but from the utf-8 codepage.  That keeps the work
and risk to a minimum.
2009-03-29 15:53:15 +00:00
..
bmps Add a 16x16 icon. Remove the .ico file from svn, adding instead the 2008-10-25 21:59:46 +00:00
scripts Use Ok for stringbox, Done for Saved games dialog; next release to be 2008-12-13 04:39:06 +00:00
test minimal test for comparing cegcc versions 2009-02-25 03:45:14 +00:00
.cvsignore new directories to ignore 2006-02-18 14:08:04 +00:00
armrel.mk add relay dir to -I list 2005-06-13 13:23:33 +00:00
ceaskpwd.c Too many changes to list. Linux works to display utf-8 dict text on 2009-03-22 23:58:22 +00:00
ceaskpwd.h rename and reorganize/simplify dialog-handling code common to all 2008-06-05 04:29:28 +00:00
ceblank.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
ceblank.h rename and reorganize/simplify dialog-handling code common to all 2008-06-05 04:29:28 +00:00
ceclrsel.c Walk dialog's controls and make a list of Edit controls so that dialog 2008-10-13 05:46:45 +00:00
ceclrsel.h update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
cecondlg.c Too many changes to list. Linux works to display utf-8 dict text on 2009-03-22 23:58:22 +00:00
cecondlg.h Make it possible to see comms dialog in read-only mode when role 2009-02-21 17:03:30 +00:00
cedebug.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cedebug.h Too many changes to list. Linux works to display utf-8 dict text on 2009-03-22 23:58:22 +00:00
cedefines.h Make tray tiles one pixel taller, extending all the way to bottom of 2008-12-12 13:40:41 +00:00
cedict.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cedict.h Too many changes to list. Linux works to display utf-8 dict text on 2009-03-22 23:58:22 +00:00
cedraw.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cedraw.h Speed up font calculation by interleaving width and height 2008-11-08 16:25:49 +00:00
cefonts.c Improve the font dialog 2008-09-27 15:10:53 +00:00
cefonts.h Check in files forgotten before: simple font browser. 2008-09-18 03:47:04 +00:00
ceginfo.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
ceginfo.h Turn on and enable UI for relay and sms transport. relay doensn't 2009-01-05 14:13:40 +00:00
cehntlim.c {G|S}etWindowLong -> {G|S}etWindowLongPtr as per MSDN docs 2008-09-27 15:05:26 +00:00
cehntlim.h rename and reorganize/simplify dialog-handling code common to all 2008-06-05 04:29:28 +00:00
ceir.h update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
cemain.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cemain.h Beginning of rewrite of socket code for communication with relay, 2009-01-31 18:06:09 +00:00
ceprefs.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
ceprefs.h Go back to using combobox on PPC but keep spinners on Smartphone. 2008-08-27 12:16:33 +00:00
cesms.c comment about APIs to use for implementation (probably the last checkin of this file.) 2009-01-31 18:03:06 +00:00
cesms.h Turn on and enable UI for relay and sms transport. relay doensn't 2009-01-05 14:13:40 +00:00
cesockwr.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cesockwr.h fix leak of packet buffers; get rid of multithread code. 2009-02-07 18:20:16 +00:00
cestrbx.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cestrbx.h rename and reorganize/simplify dialog-handling code common to all 2008-06-05 04:29:28 +00:00
cesvdgms.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
cesvdgms.h Fix other sites putting up dialogs claiming main window as parent when 2008-12-07 05:21:13 +00:00
ceutil.c Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
ceutil.h Too many changes to list. Linux works to display utf-8 dict text on 2009-03-22 23:58:22 +00:00
debhacks.c Make cegcc the default build environment for wince. Make inclusion of hacks needed to work with mingw/pocketpc-sdk conditional. 2008-02-16 16:33:46 +00:00
debhacks.h add (unused) missing defines for IME stuff, which can't work until I 2008-12-01 13:16:58 +00:00
exe2cab.pl Don't include mingwm10.dll in .cab. Doesn't seem to be needed. 2008-05-12 02:51:22 +00:00
LocalizedStrIncludes.h Catch up with changes including three enabled states for control and 2006-06-10 16:15:31 +00:00
Makefile relay name defaults to eehouse.org, easier to set at compile time for testing 2009-03-08 19:47:36 +00:00
newres.h first checked in 2003-12-03 04:30:32 +00:00
README.txt update comments to describe building with Linux tools 2006-02-18 21:59:04 +00:00
resource.h Use nwgamest support for separate config button beside role combo, and 2009-03-08 20:00:20 +00:00
shared.mk make network play on by default 2005-09-07 12:32:29 +00:00
simrel.mk add relay dir to -I list 2005-06-13 13:23:33 +00:00
StdAfx.cpp first checkin from personal archive 2003-11-20 16:26:35 +00:00
stdafx.h first checkin from personal archive 2003-11-20 16:26:35 +00:00
xptypes.h Lots more changes, and some reversions. Win32, gtk and ncurses all 2009-03-29 15:53:15 +00:00
xwd2cab.pl Go back to writing to \Program Files\Crosswords, since we now look 2006-04-22 14:06:11 +00:00
xwords.vcp revert to an earlier version that didn't build crashing code. 2005-02-11 02:50:04 +00:00
xwords4.h first checkin from personal archive 2003-11-20 16:26:35 +00:00
xwords4.ico Make much smaller .ico file by hand using GIMP, and check it in. png 2008-10-26 21:05:44 +00:00
xwords4.rc Use nwgamest support for separate config button beside role combo, and 2009-03-08 20:00:20 +00:00

This document describes how to build Crosswords for PocketPC (and for
desktop Windows).  You can build using Debian Linux, or using
Microsoft's embedded visual tools (which are free provided you have a
copy of Visual Studio.)

(Caveat: I've had to make modifications to the MinGW and pocketpc-sdk
packages to support Crosswords.  I have submitted the changes back to
the tool maintainers, but it may take some time before they appear in
Debian.  Please contact me if you need them in the meantime, at
ehouse@users.sf.net.)

To build for PocketPC with Debian, you need to install the MinGW and
pocketpc packages:

sudo apt-get install pocketpc-binutils pocketpc-gas pocketpc-gcc \
pocketpc-sdk mingw32-runtime

If you're building for Windows, you also need the mingw tools: 

sudo apt-get install mingw32-binutils mingw32

Once those are installed, it's just a matter of typing

make TARGET_OS=wince

or

make TARGET_OS=win32

at the commandline in this directory.

******************************************************************************
The rest of this file is older, and talks about building with
Microsoft's tools.

First, you need to install Microsoft's SDK for Wince/PocketPC.  It's
available for about $8 shipping and handling from Microsoft, and is
included with many books on PocketPC/Wince programming.  Here's a link
where I was able to get it:

https://microsoft.order-5.com/trialstore/product.asp?catalog%5Fname=MSTrialandEval&category%5Fname=Developer+Tools&product%5Fid=X09%2D17298

1.  Launch eMbedded Visual C++ (EVC++).

2.  Choose "Open" from the "File" menu, and open xwords.vcp in this
    directory.

*** To build for the emulator (best for development work): ***

3.  On the "Build" menu, choose "Set active conguration".  Select
    "xwords - Win32 (WCE x86) Debug" and click on the "OK" button.

4.  Choose "Build xwords.exe" from the "Build" menu.  You will see the
    names of files appear in the Build window, and a few warnings that
    you can safely ignore (though fixes are welcomed!)  After the link
    finishes, you'll see a dialog announcing that the emulator is
    being started.  The emulator will appear, and once the dialog
    disappears, if you go to the Start menu in the emulator you'll see
    a listing for "xwords".

5.  Before you can run Crosswords/xwords, you need to install a
    dictionary on the emulator.  To do this, go back to EVC++ and
    choose "Remote file viewer" from the "Tools" menu.

6.  From the "Connection" menu of the file browser that appears, choose
    "Add connection", select "Pocket PC 2002 Emulation" and click "Ok".

7.  Now navigate to a directory.  (I usually use "\My
    Documents\Personal", but it shouldn't matter.)  From the "File"
    menu, choose "Export file".  Then select the file
    "BasEnglish2to8.xwd" from the directory dawg/English.  (The
    directory dawg lives in the same directory as the wince directory
    this document is in.)

8.  Now when you launch xwords on the emulator it will not complain
    that there's no dictionary, and you'll be able to navigate to
    BasEnglish2to8.xwd when starting your first game.


*** To build for a device ***

9.  On the "Build" menu, choose "Set active conguration".  Select
    "xwords - Win32 (WCE ARM) Release" or "xwords - Win32 (WCE x86)
    Debug" and click on the "OK" button.  The "Debug" version has a
    number of asserts and other debugging aids compiled in, and logs
    to the file "/My Documents/Personal/xwDbgLog.txt" on the device.
    The "Release" version does no logging, and is smaller and faster
    and in general better suited for non-developers.

10. Choose "Build xwords.exe" from the Build menu.  Once the link is
    finished, EVC++ will try to upload the executable to your device.
    If that works, fine.  Otherwise, you'll need to get the file
    wince/ARMRel/xwords.exe (or wince/ARMDbg/xwords.exe) to your
    device on your own.  I use either an SD card or IR beaming for
    this.  You'll also need a dictionary such as BasEnglish2to8.xwd
    from dawg/English.

11. Once xwords.exe and a dictionary are on your device, just use the
    File Explorer to lauch xwords.exe.

12. Enjoy!  And please report bugs and/or submit fixes.