YM-2413 real vs emulated

Page 4/4
1 | 2 | 3 |

Par mcolom

Master (155)

Portrait de mcolom

28-08-2020, 23:39

Manuel wrote:

If you know in detail how it works and implement all that, there is no difference between FPGA or pure software emulation in accuracy.
The biggest/only advantage of FPGA, IMHO, is for video chip emulation. You can then directly control the signal output sent to a monitor.

Yep, I strongly agree with that.
Apart of the possibility to generate analog signals, there shouldn't be much difference. I guess we usually think about the overhead of the underlying OS and the lack of real time. But... what about bare-metal emulators? If done properly, they can be no different to an FPGA implementation.

Par Palver

Resident (51)

Portrait de Palver

30-08-2020, 00:04

Manuel wrote:

If you know in detail how it works and implement all that, there is no difference between FPGA or pure software emulation in accuracy.
The biggest/only advantage of FPGA, IMHO, is for video chip emulation. You can then directly control the signal output sent to a monitor.

I agree when you say that accuracy can be similar, but talking about advantages, I would note that FPGA's can talk to real hardware: you can replace a Z80 (or even a whole MSX) with a FPGA. And the “realtime“ of an FPGA is real. Those are great advantages IMHO.

Par pgimeno

Master (245)

Portrait de pgimeno

30-08-2020, 01:29

Manuel wrote:

If you know in detail how it works and implement all that, there is no difference between FPGA or pure software emulation in accuracy.
The biggest/only advantage of FPGA, IMHO, is for video chip emulation. You can then directly control the signal output sent to a monitor.

That's one big difference, but not even the main one. The main one is latency. About every software emulator today runs under an OS that introduces latency (my own emulator didn't have any detectable latency in a real DOS machine, but it does when run under a DOS emulator nowadays, for example). In comparison, most FPGA cores have a really small latency. You can't replace most chips with a software emulator, even with the appropriate interfacing, precisely because of the latency; but you can with an FPGA with the appropriate program (not in all cases, but in many).

Anyway, back to the topic, let me remind everyone that the NukeYKT core was created through reverse-engineering the die shots. It's basically the real thing. Whether it acts as an emulator, or as a clone, is a question of semantics, but the fact is that it implements something that matches the original circuit to a high degree of accuracy. If it was an FPGA implementation, it would be a circuit very close to the original.

Par mcolom

Master (155)

Portrait de mcolom

30-08-2020, 12:02

pgimeno wrote:

Anyway, back to the topic, let me remind everyone that the NukeYKT core was created through reverse-engineering the die shots. It's basically the real thing.

It's amazing that they did that, it adds a lot of confidence to the result!

pgimeno wrote:

it implements something that matches the original circuit to a high degree of accuracy. If it was an FPGA implementation, it would be a circuit very close to the original.

But at the end it's done at the logical level, which makes no difference between doing so in a FPGA and a program. It's writing a FSM with the right timing. I mean, if there's memory enough one could implement that in some kind of Arduino (where there's no OS overhead) in C, and it should be the same as the FPGA.

I prefer to call the FPGA implementations "hardware emulators" instead of clones (I know most people prefer the other way around), because some chips might contain many analog parts or effects that might influence the results, and also undocumented behaviors.
But in the case of the NukeYKT it could be called a clone is the circuit is mainly digital and highly predictable. But they had to look at the circuit level with a microscope!

Par pgimeno

Master (245)

Portrait de pgimeno

30-08-2020, 12:22

mcolom wrote:

But at the end it's done at the logical level, which makes no difference between doing so in a FPGA and a program.

It depends on whether latency is considered a factor or not, because that's the real difference. Even with the right connections, a software YM2413 emulator with NukeYKT's core couldn't replace the real chip in an existing machine except maybe with special very fast hardware and without an interfering OS, but an FPGA one could easily do that with no need for anything special.

By the way, the same guy has now OPL3 and OPN2 emulators. https://github.com/nukeykt

Par mcolom

Master (155)

Portrait de mcolom

30-08-2020, 12:39

pgimeno wrote:

a software YM2413 emulator with NukeYKT's core couldn't replace the real chip in an existing machine except maybe with special very fast hardware and without an interfering OS, but an FPGA one could easily do that with no need for anything special.

Yes, the software implementation needs to run pretty fast to emulate the speed of parts running in parallel, but actually running then sequentially. Or in parallel if there are many CPU cores, but it starts to get complicated to do it without an OS behind.

With the FPGA indeed it's simpler to add parts which run in parallel. Something I love is when I use the MSX's core (gyurco's) in the 8bits4ever FPGA MiST's clone, that after playing games for long, you touch it and it's not even hot Smile

Page 4/4
1 | 2 | 3 |