Re: 65816 emulating a C64.

From: admin_at_wavestarinteractive.com admin_at_wavestarinteractive.com <admin_at_wavestarinteractive.com>
Date: Fri, 24 Jul 2020 00:25:11 -0700 (PDT)
Message-ID: <1159631167.219025.1595575511645_at_privateemail.com>
Claudio,

Perhaps. The original question was about using a 65c816 to emulate a C64. First, a 65c816 is a cpu and you could emultate and conceivably you can get a decent emulation of a 6510 with a fast enough 65c816 cpu where you use several 65c816 cpu instructions to make instruction set routines emulating the entire behavior with a virtual "software driven" 6510. However, you are talking about a 65c816 emulating a computer. That is not possible. A 65c816 isn't a computer. It's just a part of one. It takes a computer (often a much faster and more powerful computer) to emulate a computer. With FPGA, you aren't technically emulating. You are making a clone with programmable logic much like you can clone a C64 with discrete logic chips and other components. You might have difficulty getting the speed performance using much lower scale of integrated circuits. Think about the speed difference between a 6502 clone that was done in discrete logic compared to the one used in your Commodore PET. There 
 are physics based reasons for this. We can save the 4 year course in electronics engineering and physics of electricity being crammed into a single post. 

FPGA uses very advance programmable logic. If you think about it, it is a more advance form of the technology behind the PLA and similar components found in the Amiga. The level of sophistication reached a point where you can clone the electronics of these chips using programmable logic where you no longer need to produce these older chips using traditional methods done in the 70s and 80s. In fact, Commodore probably would have replaced traditionally made 65xx chips with versions made in programmable logic had Commodore not go bankrupt and were to make a C64 today. Sooner or later, they would have ran into problems with EPA at MOS Technologies foundry which would have required it to be shut down so Commodore would have had to replace that. Likely, they would have went fabless using TSMC in Taiwan or they would have had to replace the foundry which would have cost them close to a hundred million dollars. Jack's vertical integration model would not have been sustainable through the 199
 0s and early 2000s due to the regulatory environment. Commodore might have acquired Altera or Xillinx or Lattice for the programmable logic technology to advance one of the innovations they were one of the first computer manufacturers to employ with the PLA. One benefit would have been the ability to update and patch hardware like a firmware update. This would have been something we might have seen.

However, the question was about emulating an entire computer. Lets remember that the Commodore 64's system bus was a 14 to 17 MHz computer (Y1 clock) even though the CPU is ~1 MHz. This means whatever is emulating the C64 must be able to emulate the system bus and behavior of multiple chips at 14-17 MHz. Therefore, you already going to need a CPU faster than the system clock crystal of the C64. Even if you have a extraordinarily deep pipeline bus to emulate the entire function of all the chips in a single "CPU"/Microcontroller that can do all the VIC-II, SID, CIA, 6510 at a 1:1 clock cycle.... that chip will need to be 14-17 MHz. This is absolutely impossible to achieve with the 65c816 and even with parallel processors, it is going to be a hard to do. I am not sure how fast the 65c816 will have to be to use software routines to soft emulate the 6510 instruction set with all illegal opcodes in a proper 0.98 to 1.02 MHz 6510 cycle exact behavior. It might be possible but you are likely
  to be driven mad in the process. That was what I was getting across. 65c816 is better off used as a CPU accelerator for apps and games designed around it but you will need to have a community that will be using a C64. This was more viable back in the 1990s but I don't think we have the community demand for such a product and enough interested software developers willing to develop for it. Right now, if I want to use 65c816, I would use my IIgs or SNES. A faster '816 is perfectly fine in the IIgs and SNES architecture. I would go for it. If you were going to remake a new version of the SuperCPU that I can buy for under $150, (maybe one that can run at 100 MHz) I might buy it. I am not sure if I would develop games or apps. I am not sure I would spend all this money for a C64 emulator that is being emulated by a 65c816 cartridge. I might consider a C64 emulator on a SNES or IIgs. If it was me, I would rather start from where the Turbo Chameleon code base. I would rather start from Co
 mmodoreOne/C-One FPGA code base if I couldn't go from the more refined Turbo Chameleon FPGA code base. I see it would be easier to adapt the PCB design and the FPGA code base than it would be going from the C-One or outright going from scratch. I am not going to say any of the task involved is simple. It is not. I am not committed to the work involved. I am not sure I am up to such a task for what the reward would be. I am not sure the reward is enough. 

Groepaz's concise.... no *bleep* way says it all. You can see how quickly you get into a nasty deep rabbit hole of challenges. 

> On July 23, 2020 10:59 AM Claudio Sanchez <claudio.sg_at_hotmail.es> wrote:
> 
>  
> Well... maybe with coprocessors running in parallel it could be done. 
> The fact of the '816 being able to run natively most of the instructions 
> could be of help.
> 
> The software rendering of graphics or sound, to be sent to video or 
> sound DACs, well... that's another history.

> >>
> >> What do you think?
> >>
> >>
> >>
> >> --
> >> Sent from: http://cbm-hackers.2304266.n4.nabble.com/
Received on 2020-07-24 10:00:03

Archive generated by hypermail 2.3.0.