Jump to content
IGNORED

ColecoVision wonderclone discussion


Pixelboy

Recommended Posts

There are a lot of things to consider for a project like this, what is possible vs cost vs being practical. Here are my two cents as I read through the thread (some of this has already been touched on in previous posts):

 

* Forget about ASICs. The advantage is that they are cheaper than an FPGA and an equivalent circuit will tend to have less latency than and FPGA (meaning you can squeeze more combinatorial logic between register updates). However they require minimum order quantities and up-front capital that are well beyond what a retro-computer community would be able to support. ASIC design also requires expertise that you can't really get outside of working in ASICs for a living.

 

* FPGAs are measured in terms of logic units or gates. Like RAM or ROM, the more logic units or gates the more *stuff* you can fit into a design. You can do a lot with affordable FPGAs though. $10 to $34 in price range gets you a *lot* of functionality, probably more than a single person could keep in their head all at once and design on their own.

 

* Yes, the whole CV and other stuff can be done as a SoC using an FPGA. Look at the One-Chip MSX as an example, or the C64 SoC that was made famous by Jeri Ellsworth. It takes someone with the knowledge, ability, and time to do such a project though.

 

* Any retro-project under $150 or so is *affordable* IMO. Other people will disagree based on their own beliefs and financial situation, but you are talking about a HUGE time investment and a TINY global customer base. You better do it for a reason other than money. I promise, no matter how much demand you *think* there would be for the hardware project of your dreams, the actual number of people who would lay down the cash is counted in *tens* of people, not hundreds, and definitely not thousands.

 

* Don't let the cheap availability of "modern" computers, hardware, and hand-held devices trick you into thinking making such hardware on a hobby scale is cheap or easy. When I see things like "yes, it should definitely have HDMI output, and also RGB" I cringe. Those are such commodity expectations these days from things like computers and consoles, but does anyone asking for such features have the slightest clue what it takes to generate an HDMI video output? Or that RGB is a completely different format of video and making a circuit to just "put out" all these different formats would be insanely complicated, take a long time, cost a lot for the hardware, and certainly go underutilized? Not to mention that HDMI requires a license and you have to deal with all the DCRM and other such crap. This is NOT easy or trivial stuff. If some sort of modern digital output were going to be implemented I would recommend Display Port, but even that is not easy and you are talking about circuits that have to work in the 200MHz or more range. Again, just because everyone has a 2.5GHz laptop does not mean everyone can *make* a 2.5GHz laptop (or that it is easy). I rarely see hobbyist or "open core" HDL go over 100MHz, and there is a reason.

 

* Any features beyond the original hardware are useless and will go unused. I guarantee it! If existing software can't use it, then the enhancements are a waste. You might get a few people who MIGHT make a game or two for some new hardware, but don't hold your breath. PixelBoy would probably do something, but having 32MB of bank-switched RAM, hard-drive size storage, millions of colors, MP3 sound, uber graphics, etc. is not going to draw out new developers in droves. The F18A has been out for two years now, and how many new CV games are there that take advantage of the pixel scrolling, multiple page support, enhanced color capability, no sprite-per-line limitations, sprite linking, the 100MHz GPU, etc.? Existing software does not use it, and developers making new software won't take advantage of the new features because not everyone has the new hardware. This is a chicken-and-egg scenario. Again, anything that is not compatible with the existing hardware that everyone already has, will go unused.

 

* Modern features are for modern computers. Don't try to bring the CV up to a modern computer. A CV has no reason to have 32MB of RAM! What would you do with it? The CPU can't even address it directly and it would take FOREVER to address it all. A good rule-of-thumb is 1MB per CPU MHz, thus the CV ideally needs about 3-4MB RAM. Graphics over 1-byte per pixel are also a waste - the CPU simply can't push that much data and you could never update the screen in a single frame. And more resolution, why?? 384x240 is about the best resolution for 1MHz to 6MHz 8/16-bit computers. That's what all the coin-op games could do up-through the 80's and it is a nice number of pixel or tiles to work with. If you really pushed hard you might consider 640x480, but look, it took John Carmack's brain and a 486DX2@25MHz CPU to have enough horsepower to pump that kind of display.

 

It is definitely fun to think about new hardware and all the things that *could* be done now, but the reality is that as soon as production quit on the CV, so did the possibility of standard hardware enhancements. Without the company creating the baseline hardware, 3rd party companies take over and each does things their own way and you end up with a mess. This is typical of most of the "home computers" and consoles (CV, IntelliVision, etc.) of the time. Once the 3rd party companies fade away and software development stops, the die is cast.

 

I have had this conversations many times about retro hardware. Everyone has an attachment to the systems for what they *are*. As soon as you start adding all this new hardware capability in a non-standard way (because there never was a *standard way*, or even such hardware at all), you end up making a computer that never existed. At that point no one in the community has any interest because there is no software for this new computer, and more importantly they never had this computer and they have no attachment to it.

 

Nostalgia plays a HUGE role in keeping the retro-computer communities together. While it would be cool to have a CV with lots of RAM, better video and sound, that stuff did not exist back in the day and such a system would not be a CV anymore. It is a hard line to try and not cross. When I was working on the F18A the most important "features" were 100% compatibility with the existing VDP. If the F18A was not a 100% plug-in replacement, no one would use it. Most of the F18A's enhancements go unused.

 

To reproduce the CV on a single board that had a cart port, controller ports, VGA video output, an audio output would be about $200 for the end user to buy. I'm basing this on the One-Chip MSX, and they did an run of 250 units I think. The primary parts you would need are:

 

* Someone who can do HDL, circuit design, circuit board design, circuit board layout, injection molding design, capital ($10K), relationships with board houses and manufactures, time.

* Suitable FPGA: ~$30

* External SRAM: ~$5

* PCB: ~$10 at quantity (batches of 100, 250, 500 are typical)

* Assembly: ~$20 (unless someone is going to hand assembly a big SMD board in a reflow oven?)

* Connectors: ~$15

* Audio amp: ~$5

* Video DAC: ~$5 (and R2R ladder would be cheaper: ~$1)

* Plastic case: ??

* Misc components: ~$5 - $10

 

Alternatively someone could design the SoC using an available FPGA development board and people would have to get that board and learn something about getting it programmed, adding expansion boards for things like controller and carts (if that was a goal), etc. You will eliminate a huge part of the community if the project took this path though. If the F18A were only sold as instructions on how you could do it, starting with an FPGA devboard, I would have the only F18A in existence. However, my goal was not to make F18A boards! People really liked the idea of it and I wanted other hobbyists to be able to enjoy it like I could. Thus, making the F18A into a product was my only option, but not one that I really actually wanted to do.

 

Suitable FPGA devboards for doing SoC work can be had for anywhere between $50 and $150, with the average right around $100.

  • Like 9
Link to comment
Share on other sites

There are a lot of things to consider for a project like this, what is possible vs cost vs being practical. Here are my two cents as I read through the thread (some of this has already been touched on in previous posts):

 

* Forget about ASICs. The advantage is that they are cheaper than an FPGA and an equivalent circuit will tend to have less latency than and FPGA (meaning you can squeeze more combinatorial logic between register updates). However they require minimum order quantities and up-front capital that are well beyond what a retro-computer community would be able to support. ASIC design also requires expertise that you can't really get outside of working in ASICs for a living.

 

* FPGAs are measured in terms of logic units or gates. Like RAM or ROM, the more logic units or gates the more *stuff* you can fit into a design. You can do a lot with affordable FPGAs though. $10 to $34 in price range gets you a *lot* of functionality, probably more than a single person could keep in their head all at once and design on their own.

 

* Yes, the whole CV and other stuff can be done as a SoC using an FPGA. Look at the One-Chip MSX as an example, or the C64 SoC that was made famous by Jeri Ellsworth. It takes someone with the knowledge, ability, and time to do such a project though.

 

* Any retro-project under $150 or so is *affordable* IMO. Other people will disagree based on their own beliefs and financial situation, but you are talking about a HUGE time investment and a TINY global customer base. You better do it for a reason other than money. I promise, no matter how much demand you *think* there would be for the hardware project of your dreams, the actual number of people who would lay down the cash is counted in *tens* of people, not hundreds, and definitely not thousands.

 

* Don't let the cheap availability of "modern" computers, hardware, and hand-held devices trick you into thinking making such hardware on a hobby scale is cheap or easy. When I see things like "yes, it should definitely have HDMI output, and also RGB" I cringe. Those are such commodity expectations these days from things like computers and consoles, but does anyone asking for such features have the slightest clue what it takes to generate an HDMI video output? Or that RGB is a completely different format of video and making a circuit to just "put out" all these different formats would be insanely complicated, take a long time, cost a lot for the hardware, and certainly go underutilized? Not to mention that HDMI requires a license and you have to deal with all the DCRM and other such crap. This is NOT easy or trivial stuff. If some sort of modern digital output were going to be implemented I would recommend Display Port, but even that is not easy and you are talking about circuits that have to work in the 200MHz or more range. Again, just because everyone has a 2.5GHz laptop does not mean everyone can *make* a 2.5GHz laptop (or that it is easy). I rarely see hobbyist or "open core" HDL go over 100MHz, and there is a reason.

 

* Any features beyond the original hardware are useless and will go unused. I guarantee it! If existing software can't use it, then the enhancements are a waste. You might get a few people who MIGHT make a game or two for some new hardware, but don't hold your breath. PixelBoy would probably do something, but having 32MB of bank-switched RAM, hard-drive size storage, millions of colors, MP3 sound, uber graphics, etc. is not going to draw out new developers in droves. The F18A has been out for two years now, and how many new CV games are there that take advantage of the pixel scrolling, multiple page support, enhanced color capability, no sprite-per-line limitations, sprite linking, the 100MHz GPU, etc.? Existing software does not use it, and developers making new software won't take advantage of the new features because not everyone has the new hardware. This is a chicken-and-egg scenario. Again, anything that is not compatible with the existing hardware that everyone already has, will go unused.

 

* Modern features are for modern computers. Don't try to bring the CV up to a modern computer. A CV has no reason to have 32MB of RAM! What would you do with it? The CPU can't even address it directly and it would take FOREVER to address it all. A good rule-of-thumb is 1MB per CPU MHz, thus the CV ideally needs about 3-4MB RAM. Graphics over 1-byte per pixel are also a waste - the CPU simply can't push that much data and you could never update the screen in a single frame. And more resolution, why?? 384x240 is about the best resolution for 1MHz to 6MHz 8/16-bit computers. That's what all the coin-op games could do up-through the 80's and it is a nice number of pixel or tiles to work with. If you really pushed hard you might consider 640x480, but look, it took John Carmack's brain and a 486DX2@25MHz CPU to have enough horsepower to pump that kind of display.

 

It is definitely fun to think about new hardware and all the things that *could* be done now, but the reality is that as soon as production quit on the CV, so did the possibility of standard hardware enhancements. Without the company creating the baseline hardware, 3rd party companies take over and each does things their own way and you end up with a mess. This is typical of most of the "home computers" and consoles (CV, IntelliVision, etc.) of the time. Once the 3rd party companies fade away and software development stops, the die is cast.

 

I have had this conversations many times about retro hardware. Everyone has an attachment to the systems for what they *are*. As soon as you start adding all this new hardware capability in a non-standard way (because there never was a *standard way*, or even such hardware at all), you end up making a computer that never existed. At that point no one in the community has any interest because there is no software for this new computer, and more importantly they never had this computer and they have no attachment to it.

 

Nostalgia plays a HUGE role in keeping the retro-computer communities together. While it would be cool to have a CV with lots of RAM, better video and sound, that stuff did not exist back in the day and such a system would not be a CV anymore. It is a hard line to try and not cross. When I was working on the F18A the most important "features" were 100% compatibility with the existing VDP. If the F18A was not a 100% plug-in replacement, no one would use it. Most of the F18A's enhancements go unused.

 

To reproduce the CV on a single board that had a cart port, controller ports, VGA video output, an audio output would be about $200 for the end user to buy. I'm basing this on the One-Chip MSX, and they did an run of 250 units I think. The primary parts you would need are:

 

* Someone who can do HDL, circuit design, circuit board design, circuit board layout, injection molding design, capital ($10K), relationships with board houses and manufactures, time.

* Suitable FPGA: ~$30

* External SRAM: ~$5

* PCB: ~$10 at quantity (batches of 100, 250, 500 are typical)

* Assembly: ~$20 (unless someone is going to hand assembly a big SMD board in a reflow oven?)

* Connectors: ~$15

* Audio amp: ~$5

* Video DAC: ~$5 (and R2R ladder would be cheaper: ~$1)

* Plastic case: ??

* Misc components: ~$5 - $10

 

Alternatively someone could design the SoC using an available FPGA development board and people would have to get that board and learn something about getting it programmed, adding expansion boards for things like controller and carts (if that was a goal), etc. You will eliminate a huge part of the community if the project took this path though. If the F18A were only sold as instructions on how you could do it, starting with an FPGA devboard, I would have the only F18A in existence. However, my goal was not to make F18A boards! People really liked the idea of it and I wanted other hobbyists to be able to enjoy it like I could. Thus, making the F18A into a product was my only option, but not one that I really actually wanted to do.

 

Suitable FPGA devboards for doing SoC work can be had for anywhere between $50 and $150, with the average right around $100.

 

 

very good info here

Link to comment
Share on other sites

Would it be possible to map everything to a single 64K RAM chip, which would include 32K of RAM (SGM support) and 16K of VRAM? The remaining 16K of the 64K chip would be unused, or perhaps the BIOS could be copied to that unused area, to simplify the board logic.

Yep, in fact some Complete-In-Chip system use an external RAM for easeness, and the 16K VRAM could stay inside the FPGA.

 

EDIT: Also, I'm noticing that the existing CV FPGA uses a DAC for video and audio output. If the clone had HDMI output, I guess such DACs would be unnecessary?

 

As far as I remember most development systems for FPGA are changing DAC for video to resistor arrays.

 

The HDMI output requires license, but it results the DVI protocol is compatible and doesn't require license. But both require high-speed FPGA.

 

Good to know... Do you have some experience with FPGAs, nanochess? :)

A little :D

Link to comment
Share on other sites

The analog video formats like 31KHz RGB (VGA) and 15KHz RGB (9938, coin-op) require a DAC since the video subsystem user digital bits to represent color and the monitor takes a voltage between 0v and 0.7v for each color (hence the "analog" nature of the monitor). Up to about 4 bits per color a simple scaled resistor network is fine (this is what the F18A uses). After that you need to use an R2R resistor DAC to keep things feasible. Or you can use a chip like the ADV7125 triple video DAC which takes 8-bits per color, i.e. 24-bit color.

 

The newer all-digital video formats like HDMI and DisplayPort don't need a DAC since they serialize the pixel data, which is why they have to run at very high speed. Just making a circuit board that *works* at the required speed gets beyond the ability of the hobbyist. For example, a 640x480 24-bit color display requires:

 

640 * 480 = 307,200 pixels

307,200 pixels * 24-bits per pixel = 7,372,800 bits per frame

7,372,800 bits * 60 frames per second = 442,368,000 bits per second data rate

 

So the pixel period on a 640x480 display is about 40ns, and there are three data channels in HDMI (one for each color I assume), so you have to pump 8-bits down each channel every 40ns. That would required a clock with a 4ns period which is 250MHz, and that is pretty darn fast! It might not sound like much in today's gigahertz computer world, but try to make anything that runs at 250MHz yourself and you will quickly understand.

 

DAC circuits are easy, and the analog video is also pretty simple and doable by hobbyists which is why I hope it stays around for a long time. Again, keep things in perspective - you are talking about a 30+ year old computer with an output resolution of 256x192 pixels with 16 colors. Pumping that out to a 1080P TV is not going to make it look any better.

  • Like 1
Link to comment
Share on other sites

* Forget about ASICs. The advantage is that they are cheaper than an FPGA and an equivalent circuit will tend to have less latency than and FPGA (meaning you can squeeze more combinatorial logic between register updates). However they require minimum order quantities and up-front capital that are well beyond what a retro-computer community would be able to support. ASIC design also requires expertise that you can't really get outside of working in ASICs for a living.

So the bottom line is that ASICs are really for serious commercial applications only. Well, if there are actual small-scale commercial devices implemented with FPGAs, I don't see why a CV clone could not be done this way.

 

 

* FPGAs are measured in terms of logic units or gates. Like RAM or ROM, the more logic units or gates the more *stuff* you can fit into a design. You can do a lot with affordable FPGAs though. $10 to $34 in price range gets you a *lot* of functionality, probably more than a single person could keep in their head all at once and design on their own.

Interesting. :)

 

 

* Yes, the whole CV and other stuff can be done as a SoC using an FPGA. Look at the One-Chip MSX as an example, or the C64 SoC that was made famous by Jeri Ellsworth. It takes someone with the knowledge, ability, and time to do such a project though.

I suppose it takes a lot of money for R&D as well. From what I've seen with other similar projects, the prototype tends to undergo several revisions before it reaches the final version.

 

 

* Any retro-project under $150 or so is *affordable* IMO. Other people will disagree based on their own beliefs and financial situation, but you are talking about a HUGE time investment and a TINY global customer base. You better do it for a reason other than money. I promise, no matter how much demand you *think* there would be for the hardware project of your dreams, the actual number of people who would lay down the cash is counted in *tens* of people, not hundreds, and definitely not thousands.

For a ColecoVision clone, I think one could sell at least 100 units. But yeah, not much more than that. :) Also, because the fan market is so small, adding the SGM capabilities to the basic system could pose a problem, because people who would be interested in purchasing this clone already own (or are looking to acquire) a SGM, and once they have the clone, their SGM becomes somewhat obsolete, along with their old original CV console.

 

 

* Don't let the cheap availability of "modern" computers, hardware, and hand-held devices trick you into thinking making such hardware on a hobby scale is cheap or easy. When I see things like "yes, it should definitely have HDMI output, and also RGB" I cringe. Those are such commodity expectations these days from things like computers and consoles, but does anyone asking for such features have the slightest clue what it takes to generate an HDMI video output? Or that RGB is a completely different format of video and making a circuit to just "put out" all these different formats would be insanely complicated, take a long time, cost a lot for the hardware, and certainly go underutilized? Not to mention that HDMI requires a license and you have to deal with all the DCRM and other such crap. This is NOT easy or trivial stuff. If some sort of modern digital output were going to be implemented I would recommend Display Port, but even that is not easy and you are talking about circuits that have to work in the 200MHz or more range. Again, just because everyone has a 2.5GHz laptop does not mean everyone can *make* a 2.5GHz laptop (or that it is easy). I rarely see hobbyist or "open core" HDL go over 100MHz, and there is a reason.

I had a vague notion that HDMI was a complicated proposition, but I had no idea it was THIS complicated! Knowing this, I think I could live with the good ol' yellow/red/white cables. :P

 

 

* Modern features are for modern computers. Don't try to bring the CV up to a modern computer. A CV has no reason to have 32MB of RAM! What would you do with it? The CPU can't even address it directly and it would take FOREVER to address it all. A good rule-of-thumb is 1MB per CPU MHz, thus the CV ideally needs about 3-4MB RAM.

Actually, I was talking about 32K of RAM, not 32MB... :P

 

 

Graphics over 1-byte per pixel are also a waste - the CPU simply can't push that much data and you could never update the screen in a single frame. And more resolution, why?? 384x240 is about the best resolution for 1MHz to 6MHz 8/16-bit computers. That's what all the coin-op games could do up-through the 80's and it is a nice number of pixel or tiles to work with. If you really pushed hard you might consider 640x480, but look, it took John Carmack's brain and a 486DX2@25MHz CPU to have enough horsepower to pump that kind of display.

Agreed. I wouldn't want a ColecoVision clone to offer anything more in terms of graphics mode. It's just not necessary. If you want a greater screen resolution and/or more colors, go program something for the Sega Master System or the Sega Genesis. :)

 

 

To reproduce the CV on a single board that had a cart port, controller ports, VGA video output, an audio output would be about $200 for the end user to buy. I'm basing this on the One-Chip MSX, and they did an run of 250 units I think. The primary parts you would need are:

 

* Someone who can do HDL, circuit design, circuit board design, circuit board layout, injection molding design, capital ($10K), relationships with board houses and manufacturers, time.

* Suitable FPGA: ~$30

* External SRAM: ~$5

* PCB: ~$10 at quantity (batches of 100, 250, 500 are typical)

* Assembly: ~$20 (unless someone is going to hand assembly a big SMD board in a reflow oven?)

* Connectors: ~$15

* Audio amp: ~$5

* Video DAC: ~$5 (and R2R ladder would be cheaper: ~$1)

* Plastic case: ??

* Misc components: ~$5 - $10

Now this is valuable information. :) To be honest, a "modern" ColecoVision clone is a project that I think about every once in a while, and I'm sure I'm not the only one. But having no knowledge of electronics in general, I can only guess how much effort would go into it, even for a minimally compatible system.

 

 

Alternatively someone could design the SoC using an available FPGA development board and people would have to get that board and learn something about getting it programmed, adding expansion boards for things like controller and carts (if that was a goal), etc. You will eliminate a huge part of the community if the project took this path though.

Definitely. People evidently want a plug-and-play system. :)

 

 

DAC circuits are easy, and the analog video is also pretty simple and doable by hobbyists which is why I hope it stays around for a long time. Again, keep things in perspective - you are talking about a 30+ year old computer with an output resolution of 256x192 pixels with 16 colors. Pumping that out to a 1080P TV is not going to make it look any better.

It's not so much about making it better, but rather making the image cleaner and crisper. Playing a ColecoVision game on a modern television with clear square pixels is a beautiful thing to behold. That's my opinion of it, at least. :)

Link to comment
Share on other sites

Actually, I was talking about 32K of RAM, not 32MB... :P

No problem. I was also just generalizing and not really speaking directly to your comment on more RAM. In about every retro computer forum there are people talking about megabytes of RAM for these systems, just because modern computers have RAM to spare. It simply does not make sense for these older machines. 4MB of main RAM would be a sweet-spot IMO.

 

It's not so much about making it better, but rather making the image cleaner and crisper. Playing a ColecoVision game on a modern television with clear square pixels is a beautiful thing to behold. That's my opinion of it, at least. :)

Have you seen the F18A's output? Nice crisp perfect square pixels from you CV or ADAM. If your TV has an analog VGA input then you are all set.

 

Sadly display technology is rapidly making a huge gap between what the hobbyist can do for a reasonable price. VGA up to 1024x768 is doable, digital stuff maybe up to a point. Hopefully there will be a cheap one-chip solution for driving a digital display in the future. However, CRTs are still superior for displaying multiple resolutions and lower resolutions like we deal with on the classic systems. This is because CRTs don't have the native-resolution limitations for the LCD/LED displays. I would love to see a thin panel CRT! :-)

Link to comment
Share on other sites

No problem. I was also just generalizing and not really speaking directly to your comment on more RAM. In about every retro computer forum there are people talking about megabytes of RAM for these systems, just because modern computers have RAM to spare. It simply does not make sense for these older machines. 4MB of main RAM would be a sweet-spot IMO.

4MB would be overkill for such an old console. Heck, 32K of RAM is already a large step beyond the original 1K of RAM of the original ColecoVision! :)

 

Have you seen the F18A's output? Nice crisp perfect square pixels from you CV or ADAM. If your TV has an analog VGA input then you are all set.

I have at least one TV at home which has VGA-in, but what if I want to plug a F18A-enabled console on a TV with A/V cables? Do I need a converter of some kind?

 

Beyond this, I'd be curious to know how a CV clone could be built around the F18A. I must admit I haven't investigated the F18A very much until now. Isn't it a FPGA-based graphic chip? If all it does is graphics, does this mean that a CV clone built around it would mean having two FPGAs running under the hood?

 

 

Sadly display technology is rapidly making a huge gap between what the hobbyist can do for a reasonable price. VGA up to 1024x768 is doable, digital stuff maybe up to a point. Hopefully there will be a cheap one-chip solution for driving a digital display in the future. However, CRTs are still superior for displaying multiple resolutions and lower resolutions like we deal with on the classic systems. This is because CRTs don't have the native-resolution limitations for the LCD/LED displays. I would love to see a thin panel CRT! :-)

A thin panel CRT... Wow, that would be quite a new breed of screen displays. Has it been invented yet? :)

  • Like 1
Link to comment
Share on other sites

Speaking of Wonderclone.

 

 

I am absolutely delighted with that we need a new ColecoVision, no doubt about it.

 

The "old" need so much a facelift.

 

I do not know who comes first with a prototype.

 

I remember Eduardo had talks with Matthew about using F18A for CV2 few years ago.

Too bad that they not could reach a price both could accept.

 

Eduardo said he then would produce a prototype of a CV2 clone together with Ricardo Oazem December 2013.

Harvey also working on a version with component out and better joysticks access.

 

But I must be honest, I want a ColecoVision built around the F18A with at least VGA out.

It must have access to all the SGM games so far launched.

 

At the same time, an upcoming ColecoVision must also output audio from both the SN76489 and AY-3-8910.

Backward compatible with access to our cartridges. :)

Link to comment
Share on other sites

If there's all this trouble to produce a next gen ColecoVision, it would be nice if a PS2 or USB port could be added for a keyboard so it could be used in Adam mode in conjunction with a read-write SD card slot. If it wasn't too much trouble, adding support for SG-1000/SC-3000 and MSX compatibility would be nice too. Naturally, as long as any of these additions didn't require considerable extra effort or expense, then I think it would make sense to do add them in to further expand the pool of potential purchasers and to further future-proof the thing.

Link to comment
Share on other sites

I have at least one TV at home which has VGA-in, but what if I want to plug a F18A-enabled console on a TV with A/V cables? Do I need a converter of some kind?

Yes you would need a converter, as already discussed. However the original console already puts out composite video and using a converter with the F18A defeats the primary purpose (native VGA output) of the F18A to begin with. I don't understand why you would do this? (That is a rhetorical question, I'm not actually looking for an answer, to each their own.)

 

Beyond this, I'd be curious to know how a CV clone could be built around the F18A. I must admit I haven't investigated the F18A very much until now. Isn't it a FPGA-based graphic chip? If all it does is graphics, does this mean that a CV clone built around it would mean having two FPGAs running under the hood?

Google a bit about FPGAs and it will become more clear. I'll try to sum it up here, but there is too much to explain for any good detail.

 

Think of FPGAs as a huge pile of logic chips, like the 74LSxx series. Throw in a ton of programmable I/O, some configurable RAM, clock modules, a few dedicated elements like multipliers, and a bit of other vendor specific stuff. So an FPGA is a blank slate of logic that you can configure to *become* whatever circuit you *describe*. An FPGA's internal configuration is typically based on SRAM, thus when power is removed the configuration is lost. At power-on an FPGA has to load its configuration from somewhere, typically a flash EEPROM device. This is the "Field Programmable" part of the acronym FPGA (the "GA" is Gate-Array).

 

You would typically use a Hardware Description Language (HDL) to describe your circuit, and the two most popular flavors of HDLs are VHDL and Verilog. Both achieve the same thing, most people have a preference for one other the other.

 

The process of "describing" your circuit with an HDL is commonly used synonymously with "programming", however that is wrong and it really bugs me when people talk about it like that. Writing software is absolutely NOTHING like designing hardware. Although there is a lot of effort in the industry to create C-to-HDL converters, I really don't understand this motivation. Hardware is inherently parallel, software is inherently serial (a list of instructions to be performed in order).

 

Once you have described your circuit with an HDL, you do what is called "Synthesis", which might be thought of in a similar manner to what a software compiler does to a source program. Synthesis turns your HDL description into a logic description of sorts, basically mapping your circuit description to the elements available in the FPGA. You might think of the result of synthesis like an object file from a compiler. After that you do a "Place and Route" which maps the design into a specific FPGA. This might be thought of as similar to linking an object file into an executable, which is always specific to a CPU.

 

The result of all of this is a "bit steam" that is loaded into the FPGA and "configures" it to become your circuit. Whether or not your design will fit into an FPGA depends on what you describe in your HDL and what FPGA you are targeting. If it won't fit, you can step up to a larger FPGA until it does fit. Similar to an EEPROM for a game you might write. If your binary compiles to 38K, it simply won't fit in a 32K EEPROM.

 

With the F18A I described the 9918A/9928/9929 VDP, so when the FPGA loads the bit stream I generated, it *becomes* a 9918A/9928/9929 VDP. The process of describing the 9918A was done by reading the datasheets, programming manuals, and in this case asking questions from one of the original 9918A designers Karl Guttag who graciously answered questions via email to the best of his memory! Basically I reimplemented the functionality of the original VDP, plus some enhancements because it was possible to do some things the original designers did not have the die space or budget to do (like being able to display all 32 sprites on the same line, pixel scroll support, etc.)

 

Since I was dealing with the data in its native format, I could generate any kind of output (figuratively speaking) I wanted. And this was the initial primary goal of the F18A: native VGA output. There were many previous attempts to do external converters from the 9928/29 component output to a VGA format, etc, but always with less than desirable results and always with a lot of expensive external analog and digital components. Replacing the VDP itself seemed easier and solved the problem nicely.

 

Since a circuit described with an HDL is really FPGA agnostic (unless you use components specific to a particular vendor's FPGA), designs can be merged, or used together to build larger systems. In the FPGA world these are called "cores", and might be thought of like software "libraries". So for example, the F18A's HDL could be used with a Z80 "core" (a Z80 CPU described with HDL) along with some other HDL to tie them together and describe the "glue logic" specific to a CV console, and you would have a CV SoC. This HDL could all be synthesized into a single bit stream if you select a large enough FPGA.

 

The F18A uses most of a 250K-gate FPGA (Xilinx Spartan 3E), but a full CV/F18A SoC could most likely fit in the next size up of that specific FPGA, i.e. the 500K-gate Spartan 3E. The 250K Spartan 3E costs about $14, the 500K Spartan 3E is about $24 I think. Check digikey if you really want specific pricing.

 

Z80 cores exist in mass, so it would mostly be a matter of bringing it all together and writing the glue HDL.

 

 

A thin panel CRT... Wow, that would be quite a new breed of screen displays. Has it been invented yet? :)

Not that I am aware of.

 

 

You lose ability to play Atari 2600 games.

Without checking the schematics, why is that? Just a quick and dirty answer is fine. Does the 2600 module use the component output or something? I don't know anything about the CV's ability to run 2600 programs.

 

 

I remember Eduardo had talks with Matthew about using F18A for CV2 few years ago.

Too bad that they not could reach a price both could accept.

 

Eduardo said he then would produce a prototype of a CV2 clone together with Ricardo Oazem December 2013.

Harvey also working on a version with component out and better joysticks access.

Huh? Talks? Eduardo? I apologize, I don't know names, only forum handles. Unless I have met someone in person, chances are I won't remember a name.

 

If I had such talks with anyone about a CV2 I certainly do not remember. If you have any reference, forum posts, etc, please let me know. I don't think any decision about whether to proceed with such a project would have been based on a price. Price for what?

 

Admittedly the CV is not may primary classic system. I never had one growing up so I don't have the same emotional or nostalgic attachment, so I would have to seriously consider such a project. I'm always happy to help people or participate though, and hardware is always interesting. But as I have said before, you better not do a retro-computer project with expectations on making money.

  • Like 3
Link to comment
Share on other sites

Without checking the schematics, why is that? Just a quick and dirty answer is fine. Does the 2600 module use the component output or something? I don't know anything about the CV's ability to run 2600 programs.

 

as the Atari module bypasses the VDP. Someone could add a video out for the Atari module itself and that would work. Its certainly not the fault of F18a.

Edited by grips03
Link to comment
Share on other sites

If there's all this trouble to produce a next gen ColecoVision, it would be nice if a PS2 or USB port could be added for a keyboard so it could be used in Adam mode in conjunction with a read-write SD card slot.

To have USB support you are now talking about having to add a microcontroller to handle the USB protocol. SD cards are easy to work with at a hardware level, unless you are talking about have a FAT-formatted file system on the SD card? If that is the case, you are again talking about an even bigger microcontroller that has enough on-board EEPROM to run a small OS (20K to 32K at least) to deal with the FAT file system.

 

If the SD card is not FAT formatted then using it to transfer files between the CV and a PC will be a huge pain (we have to deal with this on the 99/4A) since the PC will want to format the SD card every time you plug it in, and you will have to use special software on the PC to read/write the SD card.

 

If it wasn't too much trouble, adding support for SG-1000/SC-3000 and MSX compatibility would be nice too. Naturally, as long as any of these additions didn't require considerable extra effort or expense, then I think it would make sense to do add them in to further expand the pool of potential purchasers and to further future-proof the thing.

If you add all of that then you don't have a CV any more. Just because the CV uses the same CPU and VDP as the MSX spec. does not mean the CV/ADAM are inherently MSX compatible. The memory-map, I/O ports, interrupt vectors, ROM routines, etc. would all have to be the same between the CV and MSX, and they are not. It would also be an incredible amount of work, if it were possible at all.

 

You can't make one computer that is "all things" to everyone. Just my opinion though.

Link to comment
Share on other sites

I'm aware that you can't make one computer that is "all things" to everyone, but I was working under the assumption if this was going to be FPGA-based and we already had to make considerations for the ColecoVision side (plus potentially SGM), it's not that much of a stretch to have support for similar platforms. For my money, I'd be happy with a ColecoVision/SGM/Adam all-in-one, with the idea that all that would be supported on the Adam side would be a modern keyboard and an SD card for read/write storage.

Link to comment
Share on other sites

With the risk of stepping outside the topic, the N8-2312 board from the N8VEM project aims to be MSX compatible in such way it has a compatible BIOS and a cartridge reader. I suppose it could be equipped with a F18A instead of a traditional VDP to obtain the VGA output and newer modes. Also although the sound chip differs, there may be DIY:ers willing to build a ColecoVision cartridge reader, program the EPROM with different content and make the N8 a smaller form ColecoVision compatible SBC, even if it still uses a discrete Z80, RAM chips and so on. Just thinking out loud, although of course a FPGA solution would not require sourcing vintage chips.

 

Regarding the 1ChipMSX, I am unsure how much R&D costs were involved in the retail price, i.e. if that project was done for profit or for the labor of love.

Link to comment
Share on other sites

Yes you would need a converter, as already discussed. However the original console already puts out composite video and using a converter with the F18A defeats the primary purpose (native VGA output) of the F18A to begin with. I don't understand why you would do this? (That is a rhetorical question, I'm not actually looking for an answer, to each their own.)

Not every TV set has a VGA connector, but it's a simple thing to purchase a new one that does. :)

 

 

Google a bit about FPGAs and it will become more clear. I'll try to sum it up here, but there is too much to explain for any good detail.

 

Think of FPGAs as a huge pile of logic chips, like the 74LSxx series. Throw in a ton of programmable I/O, some configurable RAM, clock modules, a few dedicated elements like multipliers, and a bit of other vendor specific stuff. So an FPGA is a blank slate of logic that you can configure to *become* whatever circuit you *describe*. An FPGA's internal configuration is typically based on SRAM, thus when power is removed the configuration is lost. At power-on an FPGA has to load its configuration from somewhere, typically a flash EEPROM device. This is the "Field Programmable" part of the acronym FPGA (the "GA" is Gate-Array).

 

You would typically use a Hardware Description Language (HDL) to describe your circuit, and the two most popular flavors of HDLs are VHDL and Verilog. Both achieve the same thing, most people have a preference for one other the other.

 

The process of "describing" your circuit with an HDL is commonly used synonymously with "programming", however that is wrong and it really bugs me when people talk about it like that. Writing software is absolutely NOTHING like designing hardware. Although there is a lot of effort in the industry to create C-to-HDL converters, I really don't understand this motivation. Hardware is inherently parallel, software is inherently serial (a list of instructions to be performed in order).

 

Once you have described your circuit with an HDL, you do what is called "Synthesis", which might be thought of in a similar manner to what a software compiler does to a source program. Synthesis turns your HDL description into a logic description of sorts, basically mapping your circuit description to the elements available in the FPGA. You might think of the result of synthesis like an object file from a compiler. After that you do a "Place and Route" which maps the design into a specific FPGA. This might be thought of as similar to linking an object file into an executable, which is always specific to a CPU.

 

The result of all of this is a "bit steam" that is loaded into the FPGA and "configures" it to become your circuit. Whether or not your design will fit into an FPGA depends on what you describe in your HDL and what FPGA you are targeting. If it won't fit, you can step up to a larger FPGA until it does fit. Similar to an EEPROM for a game you might write. If your binary compiles to 38K, it simply won't fit in a 32K EEPROM.

Thank you so much for the detailed overview. It gives me a better understanding of what one can do with a FPGA. :)

 

 

Since a circuit described with an HDL is really FPGA agnostic (unless you use components specific to a particular vendor's FPGA), designs can be merged, or used together to build larger systems. In the FPGA world these are called "cores", and might be thought of like software "libraries". So for example, the F18A's HDL could be used with a Z80 "core" (a Z80 CPU described with HDL) along with some other HDL to tie them together and describe the "glue logic" specific to a CV console, and you would have a CV SoC. This HDL could all be synthesized into a single bit stream if you select a large enough FPGA.

 

The F18A uses most of a 250K-gate FPGA (Xilinx Spartan 3E), but a full CV/F18A SoC could most likely fit in the next size up of that specific FPGA, i.e. the 500K-gate Spartan 3E. The 250K Spartan 3E costs about $14, the 500K Spartan 3E is about $24 I think. Check digikey if you really want specific pricing.

 

Z80 cores exist in mass, so it would mostly be a matter of bringing it all together and writing the glue HDL.

That's actually a question I wanted to ask you, about "upgrading" a video chip FPGA core (like yours) into a full "SoC super-core" of sorts. Thanks for answering it before I had a chance to ask! :D

 

The FPGA is certainly the key part of the equation, but I'm also wondering about the other components. The most basic FPGA-based ColecoVision clone needs a cartridge port, a video output method (VGA or whatever else that works), a couple of DB9 ports for the joysticks, a power jack (that hopefully accepts power from a generic 12V power supply), a power switch and a reset button. Looking at the pictures of the F18A, it's a small board full of little auxiliary components (it probably seems simple to you but it looks complex to me), and that's only to generate a video display. Would a full CV clone, with all external switches, ports and connectors have a large amount of electronic components on the board? I'm just trying to build a better mental picture of what a custom board would look like, without knowing too much of the details... I'm also interested in the total size of the custom board, because it would be nice if it could fit into a generic plastic enclosure.

 

 

 

Huh? Talks? Eduardo? I apologize, I don't know names, only forum handles. Unless I have met someone in person, chances are I won't remember a name.

 

If I had such talks with anyone about a CV2 I certainly do not remember. If you have any reference, forum posts, etc, please let me know. I don't think any decision about whether to proceed with such a project would have been based on a price. Price for what?

I had to do some digging, but I found Eduardo's (a.k.a. opcode's) comments here (seems he never actually talked to you, but he did follow the F18A's development): http://atariage.com/forums/topic/203763-what-would-you-expect-from-a-new-colecovision-console/?p=2614451

 

So is it true that the F18A is a "tad" more expensive than one would expect? :) In any case, if you read the following posts in that forum thread, you get the feeling that opcode really likes the F18A and wishes he could use it.

 

 

 

Admittedly the CV is not may primary classic system. I never had one growing up so I don't have the same emotional or nostalgic attachment, so I would have to seriously consider such a project. I'm always happy to help people or participate though, and hardware is always interesting. But as I have said before, you better not do a retro-computer project with expectations on making money.

I'm a computer programmer, and as such I'm only "distantly" interested in electronics in general, so I don't see myself ever programming a ColecoVision SoC myself. But on the other hand, thanks to the help of a lot of talented people, I was able to release over 25 ColecoVision homebrew games over the past few years, and a few more games are coming down the pipeline. Our aging ColecoVisions are not getting any younger, so even though I don't have the know-how to make a new CV console all by myself, I feel compelled to look into opportunities to make it happen whenever they arise.

Link to comment
Share on other sites

I'm not sure how much sense it makes, but here is the FleaFPGA by Valentin Angelovski. The PCB is 66x58 mm excluding connectors. As you can see, it has PS/2 keyboard/mouse input, VGA output, stereo audio out, SD card reader, both USB host and slave ports and a 18 pin general purpose IO header. Since everything is surface mounted, I am not sure exactly how to count the number of components, but I get the total to about 20 components plus the FPGA chip and connectors.

 

http://www.fleasystems.com/fleaFPGA.html

 

He sold the first batch at 65 USD each plus shipping, not sure if he still got some in stock. Based on the above breakdown, it seems like a fair price although I admit not to have studied the total market for development boards or compared different FPGA chips to eachother regarding capacity and price. Although there is so far no Z80/VDP core ported to this particular board, there is a Next186 implementation which runs as a DOS PC at a nice speed, and unless the VDP is far more complex to implement than your average run of the mill EGA/VGA solution (it might very well be), I think it might within range.

 

I wonder about I/O pins though, I have a feeling those often are in shortage. If you need those pins both for a cartridge reader and for handling controllers, it might become an issue?

  • Like 1
Link to comment
Share on other sites

I'm not sure how much sense it makes, but here is the FleaFPGA by Valentin Angelovski. The PCB is 66x58 mm excluding connectors. As you can see, it has PS/2 keyboard/mouse input, VGA output, stereo audio out, SD card reader, both USB host and slave ports and a 18 pin general purpose IO header. Since everything is surface mounted, I am not sure exactly how to count the number of components, but I get the total to about 20 components plus the FPGA chip and connectors.

 

http://www.fleasystems.com/fleaFPGA.html

Wow, now that is TINY! :-o And it can actually emulate an Atari 2600 with proper programming, from the pictures I see there.

 

He sold the first batch at 65 USD each plus shipping, not sure if he still got some in stock. Based on the above breakdown, it seems like a fair price although I admit not to have studied the total market for development boards or compared different FPGA chips to eachother regarding capacity and price. Although there is so far no Z80/VDP core ported to this particular board, there is a Next186 implementation which runs as a DOS PC at a nice speed, and unless the VDP is far more complex to implement than your average run of the mill EGA/VGA solution (it might very well be), I think it might within range.

 

I wonder about I/O pins though, I have a feeling those often are in shortage. If you need those pins both for a cartridge reader and for handling controllers, it might become an issue?

I'd be impressed if it could just run a ColecoVision 32K game from the SD card slot. Plug some kind of keypad on the GPIO expansion and a regular PC joystick or joypad on the USB port, and you could play any one-player ColecoVision game on a VGA TV or monitor! With a bit of extra work, this could even be made into a ColecoVision portable system! This is cool! :D

Link to comment
Share on other sites

I fully agree, he is most helpful when time permits.

 

As for the A2600 core, I think it was a proof of concept design capable of running some, but not all games.

 

You might also be interested in checking out Grant Searle's Multicomp, which is more of a DIY solution where you get a FPGA developer board and then pick and mix different components (CPU, video mode, RAM IIRC) to get a core. It has been quite featured on various sites recently, much for it brings a bit more ease of understanding for the newcomer who just wants to utilize the technology without starting to develop something from scratch.

 

However all those cores for various FPGA designs, including the great F18A of course, show what would be doable if you invest time, skill and sweat into it. In any case, I already dubbed 2014 the year of the FPGA, not because it is brand new technology but because prices are dropping and it is starting to become technology for the common man to play around with.

Edited by carlsson
Link to comment
Share on other sites

The FPGA is certainly the key part of the equation, but I'm also wondering about the other components. The most basic FPGA-based ColecoVision clone needs a cartridge port, a video output method (VGA or whatever else that works), a couple of DB9 ports for the joysticks, a power jack (that hopefully accepts power from a generic 12V power supply), a power switch and a reset button. Looking at the pictures of the F18A, it's a small board full of little auxiliary components (it probably seems simple to you but it looks complex to me), and that's only to generate a video display. Would a full CV clone, with all external switches, ports and connectors have a large amount of electronic components on the board? I'm just trying to build a better mental picture of what a custom board would look like, without knowing too much of the details... I'm also interested in the total size of the custom board, because it would be nice if it could fit into a generic plastic enclosure.

That all depends on the design. With an FPGA you can have all the I/O come through a single high-speed serial port from a PC. Thus, your keyboard, controller, cartridge, etc. could be provided "virtually" via a connection to a PC. However, if the design goal was a stand-alone box that could take a real CV cart and controller, then yes you would need all the physical I/O ports as well as an SoC that implements the same timing and control signals that exist in the real CV.

 

The F18A could actually host an SoC by using the larger 500K-gate FPGA and implementing most of the I/O as a virtual interface.

 

 

I had to do some digging, but I found Eduardo's (a.k.a. opcode's) comments here (seems he never actually talked to you, but he did follow the F18A's development): http://atariage.com/forums/topic/203763-what-would-you-expect-from-a-new-colecovision-console/?p=2614451

 

So is it true that the F18A is a "tad" more expensive than one would expect? :) In any case, if you read the following posts in that forum thread, you get the feeling that opcode really likes the F18A and wishes he could use it.

Interesting thread, I wonder where I was during all of that?! I did not go back to see if I still have the conversation between opcode and me, but I'm sure the F18A would be too expensive if he was considering it as a "chip" in a physical system. The price of the F18A is actually cheaper now than when I first released it, but still expensive due to the low volume. This is an example of where a hobby project cannot compete with high volume boards you can find on sites like Spark Fun, Seeed Studio, AdaFruit, etc.

 

However, I would offer the F18A as a core to someone doing a CV SoC. I am still undecided about releasing the F18A's HDL as open source, but if someone was seriously doing an FPGA SoC project I would certainly work something out with them. In this case the cost would be zero.

 

 

I'm a computer programmer, and as such I'm only "distantly" interested in electronics in general, so I don't see myself ever programming a ColecoVision SoC myself. But on the other hand, thanks to the help of a lot of talented people, I was able to release over 25 ColecoVision homebrew games over the past few years, and a few more games are coming down the pipeline.

That is absolutely awesome! Making one or two home-brew games is quite an effort, but 25!! Wow! I would love to see you make a few games that took advantage of the F18A's enhanced features. No one has really pushed the F18A yet and I don't even have time to mess with my own creation. I'm not sure why, but outside of the small 99/4A community the F18A *seems* relatively unknown (just my feeling) or not of much interest. However, CV users are probably the second largest F18A user-base.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...