Reading a paddle on the 2600 is a pain. Reading all four paddles on the 2600 is an even bigger pain. I think I've come up with an approach that will mitigate things somewhat. This technique requires knowing the magic index value for the current scan line; these values go "0 1 0 2 0 1 0 3 0 1 0 2 0 1 0 4" etc. corresponding to what bit in a gray code should be flipped. If the magic index value for a scan line is known, reading all four paddles takes 26 cycles; if it's not known, it takes 32 c
Based on some discussions in "The project after the project..." I decided to test out whether a ball-based kernel would work for a Juno-First style background. My conclusion: it works and is doable with a reasonable cycle load and in a reasonable amount of code on a banked cart, and horizontal motion looks great. Vertical motion is not so great, unfortunately. The pixels seem to be horizontally "jumpy" and I don't see any good remedy for that which would still have the dots move vertically.
Atari paddles jitter. This is a consequence of a design which makes the wiper resistance part of the measurement. There's another way to read a potentiometer which works better: put a fixed voltage on the pot and measure the voltage at the wiper. Although severe grunge can still cause slight jitter, it will generally be on the order of 2-3 degrees--far less than in the normal design.In addition to the jitter problem, Atari paddles are time-consuming to read. Because measurements take many mi
One thing I was pondering recently while evaluating the feasibility of the Wormy project is the question of whether to shoot for a 4K or a banked cartridge. Certainly during the heyday of the 2600, 8K and even 16K carts were hardly uncommon, and yet there is a certain 'purist' side of me that favors 4K. How should one best decide?To be sure, there's nothing that prevents going to a banked cartridge after starting out planning a 4K one. It only took a couple hours to split Strat-O-Gems from on
I haven't gone into much detail elsewhere about the 4A50 cart and some of the techniques it uses, but since people may find it interesting I'll discuss it here.The heart of the cartridge is a Xilinx CPLD. This device has 36 macrocells connected to 32 I/O pins. While it's a step up from the 22V10 used in Al's bankswitch carts, it's still very cheap as such devices go.Another key to the cartridge is a 14.31818Mhz oscillator. Although many RAM-plus carts get by with some simple RC circuitry for
The original "Wormy", written by a young man named Matt Gokey, was a Commodore 64 game (written in BASIC) in which the player would move a snake around the screen to collect all the goodies while avoiding mines (or his tail). Very much like Commodore's VIC-20 game Slither, except that the screen was filled with non-moving goodies and obstacles rather than having randomly-appearing targets. My first real game on the PC (CGA) was a variation called "Wormy II", which smoothly animated the snake's
It's been awhile since I've posted about the 4A50 cart, so many people may be thinking it's been abandoned. It actually still is a work in progress, despite some "shiny object syndrome" that resulted in things like Strat-O-Gems.I worked awhile ago with Chad Schell to produce some VHDL for 4A50 and unfortunately did not have time then to diagnose it other than to determine that something didn't work. Hopefully within the next few days I'll be able to diagnose exactly what it IS doing and take t
New Year--maybe time for a new blogI've been doing 6502 coding for many years, having started with a VIC-20 many years ago. It wasn't until I had my Commodore 64 that I started trying to figure how to really "push the envelope", though looking at what people have done since I moved on to the PC makes my efforts seem puny by comparison (I did, by myself, figure out how to scroll sprites into the left and right borders, though).To this day, I take great pride in figuring out efficient ways to cod