[jugglemaster] Jugglemaster for Pocket PC (JMPocket)

Chunky Kibbles chunky at icculus.org
Mon Jun 21 15:01:24 EDT 2004


On Sun, Jun 20, 2004 at 01:56:28PM +0800, Per Johan Groland wrote:
> Hi,
> 
> Since this is the first time I'm posting to the JuggleMaster mailing
> list, I'll start by introducing myself. I'm Per Johan Groland, the
> original author of jmlib. (along with Palm OS and Pocket PC ports)
> 
> 
> Anyway, I recently spent some time updating the Pocket PC version
> (JMPocket) to work with the new directory structure and changes made
> to jmlib. There were as expected no (serious) problems getting it up
> and running, so I'll be ready for inclusion in CVS soon(ish). I just want
> to spend some time checking everything to see if I can't eliminate a bug
> or two while I'm at it. It requires Microsoft eMbedded Visual Tools to
> compile, which is available free of charge from Micorosft's web page.
> 
> I also noticed that the license of jmlib has changed to BSD. Does
> this mean that someone were able to contact Ken?

Yep. I managed to get in contact with him, eventually.

> I'm not familiar with the BSD license, and I seem to remember us
> discussing GPL earlier. What is the reason BSD was chosen over
> GPL? Also, I don't mean to sound grumpy, but since my copyright
> is also on the code, it would be nice to have notified me before
> changing the license...

Sorry, thought we'd discussed it previously, and you said it'd be ok,
so long as Ken was ok with it.

I chose bsd since that way it's more compatible with other stuff. GPL,
while lovely, is a wee bit prohibitive. I had in mind, for example, the
qt-embedded platform [There is already a qt port, it just needs a bit
of work, and GPL wouldn't have been terribly friendly with it]

> 
> I also thought I'd make a few comments on the changes done to jmlib:
> 
> #define BMAX 630		     // max number of balls
> 
> This was originally 35. Since the arrays in jmlib are all declared
> statically, this adds something in the area of 32 kB to the static
> memory requirement of jmlib. This doesn't matter on a PC of course,
> but it does matter on some of the platforms I've been trying jmlib
> on. Is it possible to add a typedef (e.g. JMLIB_BMAX_630) to make
> jmlib chose 35 balls as default rather than 630?

Of course. Be my guest :-)
The default should probably remain 630, though, otherwise some of the
patterns in the default patterns file won't work.

630 is what I can ascertain is the theoretical maximum number of balls
supported by our notation, the pattern:
[123456789abcdefghijklmnopqrstuvwxyz]
which is one of the ones in "stupid patterns by chunky kibbles" -
mostly a group of patterns I use to stress-test and generally abuse
the program :-)

> the JMLib::initialize function seems to have changed quite a bit.
> 
> This breaks the Pocket PC version:
> 
>   srand(time(NULL));
> 
> There is no time.h defined for the Pocket PC API. I'm not exactly
> sure why you want to use srand anyway, jmlib doesn't use any random
> number, right?

It can randomly generate styles, and patterns are on the way [I had a
long discussion with several guys, also on this mailing list, about it
before Xmas]

> >I've been fixing lots of bugs recently, mostly type-related because of
> >jmlib's preoccupation with using typedef'd JML_* types. Grrrr.
> 
> I originally added this stuff for portability reasons. I wanted to make
> sure that jmlib got a 32-bit type where it was expecting 32-bit and a
> 16-bit type where it was expecting a 16-bit type etc. (see jmlib_types.h)
> Just writing "int" gives you no guarantee as to the data size. I remember
> fiddling with a Game Boy version several years ago, where an int is 16-bits.
> 
> I'm curious though, as to what kind of bugs this is causing. I always use
> this typedef system when I write something I want to be portable...

Mostly stuff where I've used ansi C or wx types across the board, then
find that sizeof() didn't do quite what I'd expected.

Notably recently, in the new parsing code, I use standard sscanf codes,
which meant I had to use ints and the like, then convert them into
jmlib-friendly data formats.

> Finally, how to I get an account so that I can commit to the CVS repository?

I bugged Ryan about it a while ago. If you email him, tell him you're
the jugglemaster guy, he should be able to sort it.
icculus at icculus.org

Thanks,
Gary (-;



More information about the Jugglemaster mailing list