Re: [stella] Poker solitaire source, versions 012 & 014

Subject: Re: [stella] Poker solitaire source, versions 012 & 014
From: "Roger Williams" <mer02@xxxxxxxxxxxxx>
Date: Wed, 28 Nov 2001 20:23:21 -0800
> > 1. Do the first 200 shuffles _outside_ of the screen loop, all at once.
> > Nobody will notice that it takes a few frames before you start up
> > the kernal.  This gets you a quick init to a relatively scrambled state.
> Hm, what will the TV do during this time? Do I need to turn on VBLANK
> to keep the screen from flipping?

It will be doing whatever it was doing before you turned on the VCS.
It will be over so fast nobody will notice.  Turning on VBLANK first
would be professional but I doubt you'd notice it if you just waited
until you'd done the shuffles to go to INIT.

> > 2. Shuffle at the normal rate until the button has been _released_ for
> > at least 40-50 frames.
> >
> > 3. Continue shuffling until the button has been _pressed_ for at least
> > 10 frames (debounce).
> >
> So it takes a button press & release, an almost 1 sec. wait, then another
> press/release? Or did you write that backwards?

The idea is to catch the smart aleck who holds the button down while
he powers up the VCS.  Most people take at least a second or so
after powerup to get around to starting the game unless they're
trying to screw up the game, so they'll never notice the ~1-sec release
requirement.  Then, once you're assured the button was not held
down on startup, you can accept a press and stop the shuffle.

> > 4. Don't ever reset the RNG once power is applied.  Let it cycle
> > continuously or keep the last state from the previous game.  (Cycle
> > continuously is better, it's how slot machines work.)
> By `cycle continuously', you mean get one random bit/number per frame,
> whether I need one or not? That wouldn't be hard to do. As it is, I'm
> not touching the RNG outside the shuffle routine...

Yep, that's exactly it.  That way the state of the 2nd game depends
on how long you took to play the first, a number nicely randomized.
I also wouldn't reinitialize the deck -- use the output state of the
previous game as the input state for the next shuffle.

> I wish I didn't have to go to all this trouble to avoid cheating.. My
> grandmother (who taught me to play solitaire) always said that people
> who cheat at solitaire can't even be honest with themselves...

It's more like an exploration of how thorough you were.  Many
of the "easter eggs" triggered by "frying" the 2600 are actually due
to bypassed initialization.

--Roger Williams

Archives (includes files) at
Unsub & more at

Current Thread