Re: [stella] 2600 frying

Subject: Re: [stella] 2600 frying
From: "Fred Quimby" <c9r@xxxxxxxxxxx>
Date: Fri, 15 Apr 2005 17:08:00 -0400
My first attempt just randomized RAM and corrupted 6502 registers but I was 
unable to get some of the claimed effects (such as double shots in space 
invaders, white asteroids, game 0 in ET to name a few.)  Also, I found that 
changing the PC almost always just crashed the system, and changing the SP 
sometimes did too, so I also removed any modification of registers for now.  
While these regs may indeed change when the system is fried, I wonder if 
changing the PC or SP is really useful.  It seems that it will cause crashes 
or restarts almost all the time.

My latest version, I  randomly clear bits in RAM (1->0) and I am able to get 
better results, such as the white asteroids and double shots and some other 
effects that match documented claims but some effects remain elusive.

I'll try to randomly set a few bits too (0->1) but fewer than the number 
cleared and see if I can get some of these other effects to appear.

Actually, I've been thinking that instead of trying to accurately emulate 
frying behavior, maybe it would be better to let the user customize the 
"frying mode" in case they want to experiment with changing 6502 regs or 
whatnot.  Maybe I can default to clearing and setting bits randomly, but let 
the user select the following frying methods:

1. RAM
  a. randomly clear bits
  b. randomly set bits
  c. randomly clear and set bits  (default)
  d. scramble (all ram randomized)
  e. clear (all ram zeroed)
  f. no change

2. TIA regs
(same settings as above)

3. 6502 regs
  a. scramble A, X, Y, P
  b. scramble all regs (including SP and PC)
  c. corrupt A, X, Y, P (only change a bit or two)
  d.  corrupt all
  e.  no change (default)

Any suggestions on what else to add?

>From: Erik Mooney <erik@xxxxxxxxxx>
>Reply-To: stella@xxxxxxxxxxxxxxxxxx
>To: stella@xxxxxxxxxxxxxxxxxx
>Subject: Re: [stella] 2600 frying
>Date: Fri, 15 Apr 2005 09:40:52 -0400
>
>On Thu Apr 14 19:44 , 'Fred Quimby' <c9r@xxxxxxxxxxx> sent:
>
> >completely corrupted, just bits and pieces.  But what was abundantly 
>clear
> >was the normal 6502 startup sequence was circumvented.  I know an Apple 
>is
> >not a 2600, but there might be some insight here regardless.
>
>Yes, the normal 6502 startup sequence is definitely circumvented.  Most
>2600 games zero out RAM and the TIA upon startup, and if that
>happens, the machine is reset to a known state, hence no frying
>effects.  So frying must do something to interfere with getting the
>start vector from $FFFC into PC.  I'd guess that there's still noise on the
>bus when the 6502 tries to address $FFFC, causing the PC to get
>initialized from somewhere else instead.
>
>Also, what exactly are you doing with the RAM?  I wouldn't expect a
>random sequence of RAM values to accurately simulate frying.  More
>likely, frying just flips a handful of bits in the RAM, and it may be
>more likely for a bit to go from 1 to 0 than the reverse...
>
>- Erik
>Archives (includes files) at http://www.biglist.com/lists/stella/archives/
>Unsub & more at http://stella.biglist.com
>


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

Current Thread