Jump to content

vcsrocks's Photo


Member Since 31 May 2008
OFFLINE Last Active Jul 1 2018 2:50 PM

#4018212 Structured Code Question

Posted by vcsrocks on Mon Apr 30, 2018 8:35 AM

The problem with spaghetti code is that it can be difficult to debug and even worse to maintain.

#4016064 2600 Rom Comparisions and Dumps

Posted by vcsrocks on Thu Apr 26, 2018 11:22 PM

Hey there, I just dumped that Rom DUMP Pete Rose Baseball the official PAL version from my end.
I've also e-mailed it obver to Rom Hunter to add to his site. But will attached the file here for you guys to play on the Stella Emulator. :-)



Thanks mate!

#4012915 This interesting 2600 Homebrew explenation

Posted by vcsrocks on Sun Apr 22, 2018 12:55 PM

Glad you found it useful...


That's really brilliant!  I had no idea you were DS Jr. otherwise I would have connected the dots based on the bazillion other very interesting posts I've seen from you.


It's honestly much appreciated.

#4011391 Homemade atari super vcs {ntsc} 6502 questions

Posted by vcsrocks on Fri Apr 20, 2018 2:24 AM

Sorry for posting so much, somewhat ot but I've built another pcb, using two hc595 another spare tia and and arduino, to make a simple tia interface where I can write data to the chip, since I don't care about reading fire buttons or paddles, to experiment with the chip see what can be pushed out of it...., I used the circuit above for the quartz circuit, I have to wait until my new desktop motherboard gets in so I can use the arduino as a frequency counter to make sure the output is stable or even oscillating.... As I'm still waiting on the 32k sram and the hcu04 to arrive....and narrow dip sockets for the pic32

PS: the soldering is a lot cleaner than the camera shows.....left over flux, and I can't find my can of pcb cleaner



The Arduino will not be able to give you too many assurances that the oscillator is stable.  If you don't have an oscilloscope, you should get at least one of these:





I'm sure will be able to find one delivered from the US.  There are smaller/cheaper models, just make sure it has trigger detection.

#4010719 Go buy the book "Ready Player One!"

Posted by vcsrocks on Thu Apr 19, 2018 7:43 AM

Some parts of the book are entertaining, but call it a classic or "art" is a bit of a stretch...

#4006811 Suddenly my Atari 2600 won't display image anymore...

Posted by vcsrocks on Fri Apr 13, 2018 1:12 AM

Possibilities:  Intermittent short in the cord for your power supply.

                     Iffy/cold soldered power jack.

                     Bad/dirty channel selector switch(if any.)

                     Iffy/cold soldered signal jack.

                     Broken solder joints on the board that temporarily 'fix' themselves due to changes in flexure of the board when the

                        case is disassembled and/or the board warms up.

                     Capacitors/Power Switch/etc. that are barely(sometimes) working.

                     Socketed chips that have shifted in their sockets.



Also, are you sure that your TV is still in analog tuning mode for the channel that worked?  Do you see a persistent(or any) change in the picture on the channel that worked, when you turn the 2600 on vs off?


I agree with fluxit points.  Actually, my bigger suspects would be bad joint on the power jack or the power cable itself.  If you can measure the output of the 7805 you will find out.


The main point probably is, no matter what you do, do not change the tuning on the TV.  That was clearly working before and, from experience trying to hook up old computer/games in newer TVs in Germany, that is always a very tedious and uncertain process due to sub-frequencies and channel differences to other countries.

#4005530 Homemade atari super vcs {ntsc} 6502 questions

Posted by vcsrocks on Wed Apr 11, 2018 12:48 AM

  This is what I was planning on using the pic32 for, as sort of an antic co-cpu, to give the 6502 more flexibility, and since the pic can compute 32 bit numbers, then you could multiplex certain data values (8-bits is all the Tia wants) for example: you can treat and manipulate the 32bit word as 4 8-bit bytes, which you can manipulate with one instruction, so you could load up to 4 bytes, and manipulate them at the same time with one instruction, and split them back out,I guess like a sort of pseudo-pipeline, I'm probably going to clock the pic32 @ the Tia clock aswell or just screw it and use 40MHz like the 4550.... And the pic32mx270256 has on chip features for generating graphics and displays


OK, I see what you mean.  It's a bit like running on a tight budget though.  You have just about enough money to make ends meet, but once you get to it, there are always extra costs that throw things out of wrack.  In this case, the extra cost starts with getting the signals from the bus (both address and data) into the registers.  That costs a lot of cycles and you already fell behind even before you started with the actual work.


The PIC32 can really fly in comparison to the 6502, so you are probably better off letting the interrupts in the PIC carry about synchronization.


The next problem will be the noise that the PIC will introduce to the system by running fast.  Using the internal clock will help, but not solve it entirely.


My suggestion is, get yourself a nice logical analyzer if you don't already own one.  It will be your best friend when things that "should" work, don't.  There are some decent 16 port ones on eBay for about $40 bucks.

#4005139 A Greek Atari Fan's collection...

Posted by vcsrocks on Tue Apr 10, 2018 2:07 PM

Cool.  What was the last game you played?


Greetings from your german neighbor./


Keep it coming :)

#4005120 Homemade atari super vcs {ntsc} 6502 questions

Posted by vcsrocks on Tue Apr 10, 2018 1:50 PM

(i.e instead of cpu calculating the display every scan-line you simply write a few scan-lines of image data into the buffer before The TIA begins to draw, then just correctly address in the order of whats stored in the buffer and do program logic)

Since the [cy7c408a] is dual ported with asynchronous R/W, means you can just clock the output data [DO0-DO7] bus with the 1.19MHz clock from the TIA, iirc the TIA doesn't tend to like bus speeds higher than 1.19MHz?


The TIA actually runs @ 3.57MHz.  It divides the clock by 3 for the CPU and RIOT.


    Then this should allow one to overclock the 6502 with for simplicity of counting cycles a multiple of the [ntsc] color-burst [TIA] clock ( i.e being able to have 684 cpu cycles per scan-line {using a 6502 clocked @ 10.75MHz = ~3x the TIA clock } instead of just 76 cycles) in such cases also sacrificing [native 2600] compatibility for increased cpu speed and more time for crunching instructions.


The CPU controls the bus (at least in the VCS single bus design) so increasing its speed, will also increase the bus demands.  This affects anyone who wants to talk to the CPU without a proper waiting mechanism.


At 10MHz you have a period of 100ns, so your peripherals (TIA, RIOT, controllers, RAM, ROM, etc) will have to be able to respond in between 50ns and 100ns (depending on what they are trying to do: reading or writing to the data bus).  The maximum you can get out of a PIC18F4550 for instance is 12MIPs which translates to about 8.3ns period for a single instruction.  With USB turned on, the ISR will bring the average available instruction cycle up considerably.  It will be very difficult to decode the address bus, fetch the data and put it in the output.


I have a few questions, since iirc that the TIA registers are latched, if I simply set the playfied color, it will "paint" the frame with that color until it's changed? Or is it latched only for one scanline.

And can I just use wsync to strobe nmi instead of rdy, that way the CPU automatically knows the TIA is at the start of frame (or line) and just executes a drawing routine (display kernel),then once the display is drawn, it automatically goes back to the stack and simply resumes what it was executing.

Would using a cy7c408 as a makeshift buffer have any benefit on what can be done or would it be more of a bottleneck, since it's first in first out, once you write to it, you have to wait until the tia receives the data before you can rewrite more?, since data is clocked independently into and out the buffer, inputs are clocked by the CPU, which doesn't have to be 1.19MHZ since that's simply used to clock the output (so I don't have to go and recalculate timings due to higher CPU clocks). I have 2 spare tia one being used for this, the other in an Arduino (I might just use a pic and avr combo so I can have USB) "computer" ( I have a post with pcb layouts but I didn't get any response but still in the works) mainly for experimenting with the tia capabilities graphically and sound-wise (push the chip in different ways to see what happens...)


There are (at least) two problems with the CY7C408: 1) as a FIFO, you still have to rebuild the entire frame every time (i.e. the data must be popped out for the TIA); 2) 128bytes will not get you very far...


Cypress does have true dual port memories (with arbitration and all that good stuff), but they are expensive (for their size) and hard to come by.


A better option is probably a dual port VRAM, but you will still have to have some sort of controller between the TIA and the memory.  Also, VRAM is usually dynamic, which means you will have to deal with refresh.


If you use a micro controller to babysit the TIA, you can probably use the internal memory anyway and implement what the VCS really lacks, which is a framebuffer.


Well an update, I got most of the parts, still waiting on 74hcu04, load caps, and the ic sockets, but I am going to use the pic18f4550 as a in system programmer/debugger, that way I can just write up to 256k of rom data....over usb , and a co processor with a pic32mx270 which is going to be clocked at the same speed as the cpu (1.19 to start with), since its 32bit, I should have plenty of cpu power even at 1.19MHz, and it has its own 256k of storage and 64k of ram, I think it should be enough to emulate the riot and be used as a co processor (probably will need a faster clock but only experimentation will tell)

Here's a pic of the board so far


If you are not planning on using the pic32 at its full power, why not use a dsPIC33EV and not have to deal with the voltage level difference?  I'm not sure how much you really gain by going 32bits @ 1.19MHz as much as I am not sure how much you compromise by going 16bits instead :)


Also, if you plan on emulating the RIOT, keep in mind that the bus needs to be serviced by half of the CPU cycle, the latest, as that is when the CPU expects the data to be stable in the data lines.  If you are running at the same pace as the CPU, that is probably impossible to achieve.


Update: well my ic sockets came in, and I've started to wire this up... I've got the 6502 and Tia data and address bus soldered


Still waiting on the hcu04, but how stable is the 3.57 MHZ clock, because I can simply use a non working (needs new chipset) 800xl board and can tap the clock from that, as long as a 6 - 12 inch jumper doesn't affect the clock signal.... whilst the other parts are on the snail mail "express"


Crystals are very sensitive to load and parasitic capacitance, so having a long connection between the two is bound to cause you headache.

#3993913 Aardvark for Atari VCS/2600

Posted by vcsrocks on Mon Mar 26, 2018 2:06 AM

This is really good.  Really fun to play.  Good job!