Hacker News new | past | comments | ask | show | jobs | submit login
Making a C64/C65 compatible computer in an FPGA (c65gs.blogspot.com)
76 points by mmastrac on June 7, 2017 | hide | past | favorite | 17 comments



Would it be cheaper to use a FPGA or just make a C64 C65 on a chip?


One advantage of the FPGA is that you can reprogram it to do something else after you're bored with it acting as a C64, assuming in this case that you are able to desolder it. Also might only make sense to reuse the FPGA if it is sufficiently expensive. Another advantage of using an FPGA is that if you make a mistake in your design you can easily correct the error at any stage and resynthesize it.


There have been other retro computers built, and one of the features that's pretty common is the ability to emulate multiple systems. The Turbo Chameleon 64 (which can act as a C64 itself or can be plugged into a real C64 to accelerate and expand its capabilities) can also run an Atari 2600 image, as well...maybe others, I dunno. The MIST FPGA computer can run a ton of different 8 and 16-bit system images (here: https://github.com/mist-devel/mist-binaries/tree/master/core... ).

The Mega65 is particularly exciting on a few fronts, IMHO. The native feeling case and keyboard they have planned is probably the most exciting thing for me, but it's also based on a pretty modern FPGA, which should be able to emulate even late model AGA Amigas, among other things, should someone take the time to port the cores (MIST has cores for tons of stuff, so I would guess it'd be a reasonable thing for a small team, or even an individual, to tackle).


The Chameleon is powerful enough to emulate an Amiga, using the Minimig cores.


The main drawback to going with an ASIC is the initial costs are much higher than an FPGA. If you can sell high volumes of a chip, this initial cost can be spread out without damaging the affordability of the chip, so what works out as cheapest depends on the number of units you can sell.

Just in case you weren't aware, there's already a C64 SoC (a C64 in a single ASIC), that was designed by Jeri Ellsworth for the C64DTV. It's not got the processing power of the C65 but it does have the capability to run most/all C64 software.

https://en.m.wikipedia.org/wiki/C64_Direct-to-TV


FPGA: low tooling cost, higher unit cost

ASIC: high tooling cost, lower unit cost

An FPGA conversion ASIC would be $35,000+ NRE, and that's pretty cheap. An FPGA is what, under $100 these days? The reason ASICs are cheap is because you sell thousands or millions of units to amortize the NRE cost.


> An FPGA is what, under $100 these days?

More like under $20. And has enough RAM that you don't need an external RAM chip for something like emulating a C64.


I recall reading development was being done on a pretty beefy FPGA; one that would not be limited to emulating just the C65 (note the C65 was based on a 65CE02 16-bit CPU at ~4MHz, and not the 8-bit 6510, so quite a bit more demanding than a 6510 at ~1MHz).

I went searching for prices way back when I first started reading about the Mega65 project (I donated back then and got access to the core files, but didn't go through with buying an FPGA to try them on), and I think the FPGA in single-unit quantities was over $200. I may be misremembering, and I may have looked at the wrong vendors, though. But, I think they're not targeting a super low-end market for this project. Which, I think is reasonable. People with no money to spend will run an emulator.

So, I hope it won't be too expensive, but I won't flinch if it's a few hundred dollars, even though I picked up my current working C64 for under $50.


A Cyclone IV GX is something like $25.

And it can run a NIOS II embedded processor (which is 32-bits) at almost 200MHz.

I would be stunned if that FPGA isn't fast enough or large enough.


This is the dev board they're using (a Nexys 4 at $320): http://store.digilentinc.com/nexys-4-ddr-artix-7-fpga-traine...

I imagine the FPGA alone, without the ancillary stuff will be somewhat cheaper (nope, I checked...not much cheaper...DigiKey has the Xylinx Artix-7 in single quantity for $256). I'm not an expert on these things, so maybe I'm looking at the wrong parts.

I just recall looking up what it would cost to run it today would cost, and thinking, "I'll just wait until they ship it all in a nice C65 style case".

Here's the discussion about the size of it: http://mega65.net/fpga-development-boards


o_O !!!!!

Talk about overkill. Holy cow.

These guys did a 50MHz 6502 back on a Cyclone II: http://www.cs.columbia.edu/~sedwards/classes/2013/4840/repor...

It looks like they're going for an FPGA that has 512K+ of RAM directly on board. That's really expensive and I note that even the Altera stuff is in the same range of price. That's a poor design decision.

4Mb SRAMs are something like $10 with a 10nS access time.

Clearly some inexperienced hardware designers.


haha no, more like over $200 + at least 4-6 layer board (Artix A200T in bga). This project is a joke :(


I don't have a problem with 4 layer boards. It's not worth wasting the brainpower (and debugging time) anymore to route something with 2 layers when you can have great ground and power planes for a really marginal increase in cost.

The issue seems to be keeping all the RAM in the FPGA. That's pretty expensive.

Chalk it up to inexperienced hardware designers.


What sort of production cost would you have for an ASIC after the NRE cost?


And how would either compare to a cheap 1ghz+ arm SoC emulating it in software?


If you do it right, you can use real physical hardware designed for the original computer directly. If you build an Apple //e motherboard from an FPGA, you'll be able to mount it inside an Apple //e case and use the keyboard (provided you built the signals and the connector), drive the composite video output (again, if you replicated the video signal generation), plug in floppy controllers (if you replicated the slots) and so on. This is useful if you need to read original media, for instance.

You can build a very accurate software emulation, but you won't be able to interface it with physical hardware that way.


That depends on how many you want to make of them.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: