6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 3:45 am

All times are UTC




Post new topic Reply to topic  [ 842 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13 ... 57  Next
Author Message
PostPosted: Fri Sep 11, 2015 9:31 am 
Offline
User avatar

Joined: Sun Jun 30, 2013 10:26 pm
Posts: 1949
Location: Sacramento, CA, USA
Oneironaut wrote:
... My goal is not the destination as much as the journey ...

... and I'm sure I'm not alone with my praise for your abilities to document this eccentric journey you have chosen. You've found an almost perfect "eccentric" audience here ... and the unprecedented rate of thread views is proof of that.

Mike B.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 11, 2015 12:33 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Thanks, glad I found this corner of the web!
Appreciate all of the positive feedback, especially being just a weekend hacker.
My strength is mainly a refusal to give up, no matter how eccentric the goal!!

Looking forward to getting that 6502 in the pilot's seat soon!

Cheers, and thanks to all who keep this site alive!

Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 7:45 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I was asking if you have any plans, after you complete the TTL stage, to progress the design further using FPGA.... Or, is this a strictly breadboard design?

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 8:47 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
ElEctric_EyE wrote:
I was asking if you have any plans, after you complete the TTL stage, to progress the design further using FPGA.... Or, is this a strictly breadboard design?


Nope, there will be no non-retro parts in this project.
The final design will live in a hand made wood cabinet with a glass front, and from there I will concentrate on documentation and source codes.

An FPGA version of this project would be it's complete and utter death!

Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 8:58 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Progress... but no photos / videos yet!

I had some time to test the new PlayField Generator design, and it is working well clocked in at 30MHz. The clock is divided, so the effective pixel rate is 16MHz.
The Mode selection idea worked perfectly as well, so now I can chose backgrounds of 2048x512, 1024x1024, or 512x2048 in size.

By adding only 3 more ICs, a 74HC688 and a pair of 74HC574s, I was able to create Horizontal Parallax Scrolling!
How this works is by allowing the CPU to specify the Y-Start and Y-End values for the PlayField destination to the video memory.
For Parallax Scrolls, you just move the PlayField in strips at different X-locations, creating the Parallax effect.
Because of the raw speed of the PlayField Generator, the Parallax effect can happen on all 300 horizontal lines!

I might also try a rotation mode for the Sprite generator by allowing the choice of up or down counting on both the X and Y counters.
This would allow a single Sprite to be rendered in 1 of 4 rotations, saving a lot of memory for rotating objects.
By storing only 8 angles of a quadrant, the Sprite Generator could effectively render 32 Sprites, making a 360 degree rotation.

Once I have the last bit perfected, I will sit down and do some video demos to really show off the PlayField Generator capabilities.

This will complete the video hardware, which means that the 6502 and IO circuitry will be next!

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 8:58 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Oneironaut wrote:
...An FPGA version of this project would be it's complete and utter death!

Brad


Pardon me, but why do you have such a 'perceived' dislike of "new" technology? lol


I'll stop jabbing you after you answer, sorry

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 9:05 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Just being eccentric!
I stated my goals at the beginning, one of which is the zero use of such things.
On my other bench, I have a Spartan-6 bit banging HDMI, clocked at 400MHz, so it's not like I am always a Luddite!

Brad

ElEctric_EyE wrote:
Oneironaut wrote:
...An FPGA version of this project would be it's complete and utter death!
Brad

Pardon me, but why do you have such a 'perceived' dislike of "new" technology? lol
I'll stop jabbing you after you answer, sorry


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 13, 2015 10:42 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8507
Location: Midwestern USA
Oneironaut wrote:
On my other bench, I have a Spartan-6 bit banging HDMI, clocked at 400MHz, so it's not like I am always a Luddite!

Ahem! It's "neo-Luddite." :lol:

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 14, 2015 4:33 am 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
I did some testing on the new added feature that allows the PlayField Generator to select a start and end line to draw rather than simply blasting the entire 400x300 windowed section to the Video memory, and it worked great! By selectively rendering lines from the giant PlayField memory, cool effects such as Parallax Scrolling or entire screen manipulations can be done.

At this point, I would call the Video Section of Vulcan-74 complete! That's a good thing, because I am almost out of board space.
There "might" be enough room for the 6502 and multiplexing circuit, but if not, I will just jack in another large series of breadboards and forge ahead!

Just think... the final version will have almost as many ICs in the Sound Generator as I have on the board already!

So here is the messy state of the board as of tonight...

Image
Initial wiring is never pretty!

Since I am satisfied with the 32/16MHz speed of the new and improved PlayField Generator, it is time to clean up all the wiring and claim success.
A few more demos and tests will be done to really work out the hardware, and then the 6502 gets a new home.

Check out this quick video demo that draws the PlayField Image to the screen by shifting every single horizontal line one at a time...

Image
https://youtu.be/XuzK2BwvmKQ

I threw in a few dozen Sprites as well just to show off the raw screaming retro power available in this tangle of 20 cent chips and wires!
The next demos will show something a lot more interesting that bouncing balls and warping screens!

So far so good... 120 logic chips, 4000 wires, and a 15 foot square breadboard running at 30 MHz!

Until next time!
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 18, 2015 5:31 am 
Offline

Joined: Fri Sep 18, 2015 5:01 am
Posts: 20
A palette would be a nice feature. A 256x16 RAM would be all it takes (plus a little logic) and would open up a lot of options for traditional effects like color cycling. It would also allow a larger selection of colors without an increase in bytes-per-pixel.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 18, 2015 1:42 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Good point on the plasma / cycling effects. In the original design, I had the output from the Video Switcher fed into triple 32K 15ns SRAMS, each having their low address buses tied together. This way, a single byte would translate into 24 bit color with no speed reduction in the output path. To program the palette, it was simply a matter of switching on 3 74HC245s to write the needed 768 bytes to program the palette. I also had a dual SRAM version that would output 4096 colors (12 bits).

The reason I chose 32K srams (only need 256 bytes) is due to their availability and speed. CY7C199 are readily available in DIP.

The only reason the palette hardware did not make it is because I initially put down the DAC and switcher, and then the board grew so fast I ran out of room at the top!
Your comment is making me consider the palette option again, and I could just jam a small board near the top to gain the needed space.

With over 100 ICs in the video section, I guess another 6 to gain 24 bit programmable color would be the Logical thing to do!
Thanks for reminding me to put that back on the TODO list!!

Radical Brad

matthew180 wrote:
A palette would be a nice feature. A 256x16 RAM would be all it takes (plus a little logic) and would open up a lot of options for traditional effects like color cycling. It would also allow a larger selection of colors without an increase in bytes-per-pixel.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 18, 2015 5:03 pm 
Offline

Joined: Fri Sep 18, 2015 5:01 am
Posts: 20
IMO 16-bit color is enough for a retro system. This would save you some room in the color output circuit and color DAC. If you store the color as 5-bits each (ARRRRRGGGGGBBBBB) then the MSbit can be the alpha or transparent bit. If the MSbit is '1' the color is transparent, if '0' the color is displayed. This way you can eliminate your transparent-color register, associated update logic, and wide comparator since you would only need to check a single bit coming out of the color RAM (the bit could literally be the #WE signal to the RAM.)

This also gives the programmer more flexibility in the palette since you can effectively "blank out" colors without changing the color value, albeit it would require a read-modify-write (but only the MSB of the color). This also allows any number of colors to be transparent simultaneously. Because making a color transparent only requires toggling the MSbit instead of changing the RGB values, you would not need to keep a copy of the palette colors in CPU RAM (after initial palette loading of course) to restore any colors that were set transparent.

If you go with 4-bits per color (still a large palette for a retro system), then you would have the top-4 MSbits if you wanted real alpha-channel levels, or blending options, or bit-swapping options, or logical operations, etc. Certainly more circuits, but isn't that always how it goes... ;-)


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 21, 2015 3:30 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
I spent a few hours cleaning up wires on Sunday. This time intensive task involves removing the randomly placed and overly long test wires to replace them with custom shaped cut to length wires.
Each wire that is not a bundle is hand shaped and then installed (like a muffler installed in a car!).
It's like doing surgery! Very carefully trying not to rip up other wires as I feed the snake-like wire into the board.

Gave some thought about re-introducing the palette option, but then remembered why I left it out in the first place.
To make this work, I would need at least 2 extra SRAMs (3 for 24 bit color), which would mean 512K SRAMs since there are no 12ns 32k DIP parts.
I did find 15ns 32K DIP parts, but this timing crawls over the safety margin ever so slightly for 20MHz operation.
The other issue is that a blanking and buffer circuit has to be added for every SRAM in the palette system as well.
In previous tests, I concluded that you cannot drive the DAC directly from SRAM output due to imbalanced propagation in the output.
The output MUST be latched up via 74HC574 or some banding will be visible on the monitor. Yes, a monitor can see .5ns!
I got away with this for NTSC or CRT VGA monitors in the past, but in this project, I am driving a new LCD monitor.
One of the rules... perfect video with absolutely no glitches or artifacts, so I will keep things they way they are now.

Having met all of my video goals (plus the added PlayField Generator), I have decided to finally stop feeding the monster!
I also wrote an image / sprite processing PC program as well, and it uses the current RRR-GGG-BB color space to convert BMP to data.

I will now continue to clean up wring and then post some photos of the project before moving onto the 6502 / IO stage.

What is interesting is that Vulcan-74 uses only 12 different ICs! They are...

74HC04
74HC08
74HC32
74HC193
74HC590
74HC4017
74HC74
74HC139
74HC574
74HC245
74HC688
CY7C1049

In the final design, the only new part will be the 6502, so the entire project will be made of only 13 ICs, 11 of them standard 7400 logic components.
The Sound System will also use only the same ICs.

I will be able to describe the final unit in 2 vastly different ways...

- Vulcan-74 is a Retro Game System built using only 13 ICs.
- Vulcan-74 is a Retro Game System built using over 240 ICs.

Will post some photos of the cleaned up board soon, along with some better video demos showing the various features.
I also have the dual joystick function working, so will add that to the video.

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Mon Sep 21, 2015 9:01 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 690
Location: Gillies, Ontario, Canada
Update : Vulcan-74 Expands!!

In order to deal with the lack of real estate, I am making another 24 panel breadboard to double the size of the project.
Yep, this thing is going to double in size with the Sound Generator! The new giant board will be 48 panels in size!

Since the Video System and Sound System are completely independent systems, I will make 2 separate 24 panel boards and simply connect them with an 8 bit bus and some control wires. This will make it a little easier to work on the board, since the 2 panels together will span almost 5 feet wide!

My new expanded breadboard will have 830x48 = 39840 tie points!
Hopefully, I won't run out of breadboard space, or I will have to knock down a wall and expand my lab into the bar area of the basement, and this would not go over well with Mister Daniels, Morgan, Beam, or Cuervo.

Now back to wire cleanup as I await the next shipment of breadboard panels.
...Any doubters lingering out there that say a breadboard with 240 ICs can't run properly at 20 / 30 MHz!??

Cheers,
Radical Brad


Top
 Profile  
Reply with quote  
PostPosted: Tue Sep 22, 2015 10:13 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
Oneironaut wrote:
...
...Any doubters lingering out there that say a breadboard with 240 ICs can't run properly at 20 / 30 MHz!??

Cheers,
Radical Brad

What are you using for a power supply source? How would you describe your power distribution scheme? Bypass cap's on every IC?

You use all HC TTL so that's pretty safe... No doubts here. A most impressive breadboard design!

Looking forward to your audio section Brad.

EDIT: You have to chime in on the "Techniques for high speed digital circuits" 'sticky'

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 842 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13 ... 57  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 46 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: