Re: [stella] Perfect BIN copy protection

I have to chime in here and correct a misconception I've seen posted on the
Cuttle Cart a few times. It's roughly expressed in the following paragraph.

As far as the Supercharger/Cuttle Cart, we know
those devices were never meant as hack tools. It
doesn't take much effort, especially if you are aiming
at 4K/8K ROMs, to build a RAM cart with write-
protect switch which will work *exactly* like a ROM
or, with the flick of a switch, *exactly* like an emulator
with RAM yet none of the control structures of the
Cuttle Cart.

There is no flaw in the Cuttle Cart's emulation of various ROM and RAM
modes once switched to that mode. A cartridge that only has ROM, will
respond only as ROM. There is no ROM/RAM confusion. There are also no
extraneous bankswitching hotspots or anything like that. (Which is a
problem with an unmodified Supercharger.) If you tell the Cuttle Cart to
act like a 4K cart, it does just that. It becomes nothing more than 4K of
ROM. It's the same as throwing the switch on the theoretical ram cartridge
mentioned above.

The difference lies in the state of the processor flags and the 2600's
internal RAM. With a standard cart, when you plug it in and turn on the
2600, the RAM will be in a random state. I'm not certain about the
processor flags, but I assume they come up in a known state. The Cuttle
Cart, in order to properly play the Supercharger games, puts a portion of
the RAM into a known state when it starts the loaded game. It also sets
the processor flags differently than set on a 2600 hard reset. I provided
this known state to Thomas and Manuel at their request as they wished to be
able to detect Superchargers and Cuttle Carts and disable them.

This preset condition will not affect most games, as they're not actively
seeking out these values. The effect I figured most likely to occur in a
game was that if they relied on a RAM value being random to initialize a
random number seed, that the seed would always be the same after loading a
cart. So far I haven't received any complaints of any obvious effects as a
result of this, so it's apparently not much of an issue.

I have however, received numerous emails asking how to make Gunfight work
on the Cuttle Cart. I reply to these requests that the author of Gunfight
has specifically designed the game not to run on the Cuttle Cart, and they
should go bug him if that bothers them.

Perhaps I should have monitored for SC modes and only set the RAM to a
known state if they were detected, otherwise filling it with random values,
thus making the behavior that much closer to the real thing. I could do
similarly with the processor flags. But I did not, and the Cuttle Cart
works just fine.

I did not design the Cuttle Cart with the intention of destroying the
homebrew market. Personally I do not think locking it out will
particularly alter sales that much. In my opinion, most of the people who
would purchase a homebrew game, and who purchased a Cuttle Cart, will still
purchase the homebrew games because they are collectors, they want to
support the author, or both. Manuel apparently does not share my view on
this however, so I was willing to provide him with the state to look for to
lock out the Cuttle Cart. However, I asked that he inform people of this
fact if he did it so that I wouldn't get lots of people saying, "Hey, why
doesn't this game work." (However, the Gunfight ROM that's out there
apparently does not work, and the word of this fact did not get around. -
Sigh.)

Ok, so that last paragraph was a little off topic. I just wanted to
correct a technical misconception about the Cuttle Cart. Also, as I think
far too much energy is being spent to lock it out, I'll close with this
hopefully sobering fact. It would be trivial to load a locked out game
into the Cuttle Cart, unaltered, in such a way that it would not see the
Cuttle Cart pattern. (And this is without altering the Cuttle Cart.)

You guys already have a simple method that will "prevent" games from
running on the Cuttle Cart. As any more complexity will not make the work
around more difficult, can we stop proudly harping about killer ways to
disable the Cuttle Cart and move on?