<!doctype html public "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>LFW: PalmPilot things</title>
<link rel=stylesheet href="/lfw.css">
<link rev=made href="mailto:ping@lfw.org" title="Ka-Ping Yee">
</head>
<body bgcolor="#ffffff">

<p><a href="http://www.lfw.org/"
  ><img align=right src="/pics/lfwsmall.gif" border=0 alt="[LFW]"></a>
<h1>PalmPilot Things</h1>

<p>After losing all the personal data on my Palm Pilot yet
again,  i finally decided to take note of lessons learned in 
<a href="fix.html">Ping's guide to troubleshooting your Pilot</a>.

<p><em>News flash!</em> <a href="#escape"><strong>Real-time
3-D texture mapping on your Palm Pilot!</strong></a>

<p><em>Even newer news flash!</em> Make change even
when you don't have any change!  Use
<a href="changemaker.prc"><strong>ChangeMaker</strong></a>
<!--#exec cmd="/web/bin/count /web/lfw/pilot/changemaker.prc"-->
to pay a friend fairly using chance to produce the correct
expected value.

<hr>
<h4>Looking for Neat Toys for Your Pilot?</h4>

<p>At this site you can
<a href="poly.prc">get <strong>Polyhedra</strong></a>,
the original 3-D graphics demo for the PalmPilot.
<!--#exec cmd="/web/bin/count /web/lfw/pilot/poly.prc"-->
Not a very practical program, but at least it's
tiny, at less than 4k.
It was an enjoyable first try at hacking the Pilot for me,
back in February 1997.
Good for showing off that your Pilot can do more than
just take notes: it can render shapes in wireframe!

<p>If you want to play with another useless, battery-draining app,
<a href="blobs.prc">try <strong>Blobs</strong></a>,
my first experiment with greyscale mode.
<!--#exec cmd="/web/bin/count /web/lfw/pilot/blobs.prc"-->
It might well be one of the first screen savers for the Pilot.
<a href="mailto:ping@lfw.org">Let me know</a> what you think.
(Tap the menu button to get some instructions.  To see the
busiest animation, start the program, press the "up" key once
and the "down" key three times, then wait.)

<p>Thanks to everyone who's played with Polyhedra.
I've been getting a lot of mail from people who
think it's neat.  But it's plain C and uses only
wimpy built-in drawing routines, so allow me to say
you ain't seen <em>nuthin'</em> yet!  I'm sure that
lots of Pilot programmers will be able to do much
cooler effects.  Just wait till we get going on the
serious assembly code.

<p><strong><em><small>NEW!</small></em></strong>
So, this page hadn't been updated in over a year, and
last time (on 1 January 1998) i wrote:

<blockquote><em>
Though i didn't do any Pilot
stuff over the summer, i've started on something
else recently which i'm really excited about.
</em></blockquote>

<p><a name="escape">The "something else" in question is <strong><em>the first
real-time texture mapping program ever to be written
for the Palm Pilot</em></strong></a>.  I finished the renderer
over the Christmas holidays in 1997, and it has languished
for over a year while i hoped to turn it into a real game.
I haven't had time for that yet, but i still want to share it
with you.  Impress your friends!  :)

<p>The renderer has a carefully optimized inner loop in
68k assembly and manages around 10 to 13 frames per second
(cheating) in a 3-D (really 2.5-D) Wolfenstein-style maze
with a textured sky background.
You will need to install two files to see the demo:
the renderer, <a href="escape.prc"><strong>Escape</strong></a>,
<!--#exec cmd="/web/bin/count /web/lfw/pilot/escape.prc"-->
and 
<a href="simplemaze.prc">a simple maze</a>
<!--#exec cmd="/web/bin/count /web/lfw/pilot/simplemaze.prc"-->
for it to display.  Start the program and tap the menu button,
choose "New..." and the maze "simplecyc" should appear in the list.
Go ahead! Try it out and <a href="mailto:ping@lfw.org">let 
me know what you think</a>.
I hope you like it.

<p><hr>
<h4>Are You a Developer?</h4>

<p><strong><em><small>NEW!</small></em></strong>
As a little New Year's present for 1998, i'm posting
the source code for Polyhedra for you to look at,
in case you were curious.
The main program is in
<a href="poly.c"><strong>poly.c</strong></a>
<!--#exec cmd="/web/bin/count /web/lfw/pilot/poly.c"-->
and there is a header file for the fixed-point arithmetic in
<a href="fixed.h"><strong>fixed.h</strong></a>
<!--#exec cmd="/web/bin/count /web/lfw/pilot/fixed.h"-->.
I spent a few minutes going through and adding comments
to explain what's going on.  If you want to use the routines
in your own programs, <a href="mailto:ping@lfw.org">just ask</a>.

<p>If you're a developer, you might like my Perl
scripts for manipulating Pilot database files.  For me,
they're indispensable help in Pilot hacking sessions or
when taking apart other databases to see what's inside.
Get them here:
<ul>
<li><a href="prcx.pl"><strong>prcx</strong></a>:
<!--#exec cmd="/web/bin/count /web/lfw/pilot/prcx.pl"-->
examines
databases, lists their contents, extracts records and
resources from databases, or dumps all database records
in a text format (<a href="prcx.html">see examples and help text</a>)
<li><a href="prc.pl"><strong>prc</strong></a>:
<!--#exec cmd="/web/bin/count /web/lfw/pilot/prc.pl"-->
creates
resource databases when run as "prc" and record databases
when run as "pdb" (use a symbolic link), either from a list
of binary files or from a text dump format
(<a href="prc.html">see help text</a>)
<li><a href="pbmpx.pl"><strong>pbmpx</strong></a>:
<!--#exec cmd="/web/bin/count /web/lfw/pilot/pbmpx.pl"-->
dumps Pilot bitmap resources in a textual representation
<li><a href="pbmp.pl"><strong>pbmp</strong></a>:
<!--#exec cmd="/web/bin/count /web/lfw/pilot/pbmp.pl"-->
creates Pilot bitmap resources from a textual representation
</ul>

<p>You can get more developer's tools at
<a href="http://www.roadcoders.com/">RoadCoders</a>.

<p>Watch for more.

<p>
<hr noshade size=1>
<em><small>
copyright &#169; by
<a href="http://www.lfw.org/ping/">Ka-Ping Yee</a>
&lt;<a href="mailto:ping@lfw.org">ping@lfw.org</a>&gt;
updated 1 May 1999
</small></em>
<!--#exec cmd="/web/bin/log /web/lfw/pilot/index.html"-->
</body></html>

