[stella] Stella 2.0 Alpha 4 available

Subject: [stella] Stella 2.0 Alpha 4 available
From: "B. Watson" <atari@xxxxxxxxxxxxxx>
Date: Sun, 17 Jul 2005 14:21:14 -0400
We didn't release an alpha this week, but we're making up for it by
releasing one with lots of new features this week. You can download the
Windows binary at:


New features:

- Conditional breaks! Use "breakif condition", then "run". The condition
   syntax is very C-like. Examples:

   ; Break any time the Y register gets loaded with myValue
   breakif y==myValue

   ; Same thing, but more readable. Must use {} if expression contains spaces
   breakif { y == myValue }

   ; Break whenever $7f gets loaded into the Accumulator inside mySubroutine
   breakif {pc >= mySubroutine && pc <= mySubroutineEnd && a == $7f}

   ; Break when RAM location gets a particular value
   breakif {*$aa == $00}

   ; Same thing as "break $f000", but ever so slightly slower:
   breakif pc==$f000

   You use * for a byte dereference (*foo means "byte at location foo"), or @
   for a word dereference (@foo means "word at location foo,foo+1")

   All numbers are parsed with the new expression parser, so you can also
   do things like: "ram 80 *81" (which means "put the contents of location
   80 into location 80), or "a x+1" (which means "set the Accumulator to
   the current value of the X register, plus one").

   Unlike PCAE's conditional breaks, Stella's breakifs are *fast*. On an
   Athlon 2100+, I can have up to 25 breakifs before the emulation slows
   down (though after 6 breakifs, it starts to use a lot more CPU). We
   haven't tested on slower CPUs, but I expect that even the slowest
   CPUs capable of running Stella at full speed will support at least
   one breakif without slowing down.

   The Debugger.txt documentation hasn't been updated with the full
   expression syntax yet, so if you're not familiar with C, you'll have
   to experiment for now. Keep in mind that you need "==" to test for
   equality, not just "=" (that's assignment, which will be supported in
   future versions)

- Per-scanline and per-instruction updates of the TIA display!

   There's now a "Scan+1" button that runs the emulator for one scanline
   and draws the result to the framebuffer. The graphics from the old
   frame are still present, but they're "greyed out". (This only works
   if you start at the top of a new frame, for now)

   You can also run many scanlines at once from the prompt: "scanline 30".

   While stepping/tracing your kernel, the screen will update during
   the scanline, so you can watch your graphics as they're drawn. This
   doesn't quite work like a real TIA: the emulated TIA only draws when
   it's written to. We're pretty sure we know how to fix this though.

There are a few bugfixes and tweaks that need to be done, but both the
breakif and per-scanline support are nearly complete. Have fun!

Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://stella.biglist.com

Current Thread