6 ms·
Since the CPU is emulated by an FPGA, FDD is emulated, then why not save all the money and just use a software emulator?
by DeathArrow 4y ago
Since the CPU is emulated by an FPGA, FDD is emulated, then why not save all the money and just use a software emulator?
- markus_zhang 4y agoMaybe holding some real hardware gives much joy? I'm thinking about maybe emulating it using a Pi and buy some peripherals such as external floppy. Not sure if it's doable though.
- Koshkin 4y agoThe real real hardware - sure, but emulated on a FPGA… not so much. But that’s just me. Emulation in software (and the virtual space in general), on the other hand, is close to perfect these days. In fact, material things get boring pretty fast (and tend to end up in the attic) whereas virtual reality (like games) remain a source of perpetual joy.
- markus_zhang 4y agoAfter some thoughts I believe I agree with you on both points. A replicate but with new board and new chips for buyers to solder their own hardware would be really interesting and educational. On the other side, I already have some retro hardware collecting dust so tonight I'm going to get one out to play CD music I just bought. Only vintage laptops have CD players installed.
- jason-phillips 4y agoBecause the journey is more rewarding than the destination? Extending your thought, what if the journey of building/acquiring/configuring the meatspace thing was also emulated?
- antiverse 4y agoWouldn't use this analogy - it might be an emulation of some sort.
- bebop 4y agoHardware emulation can make the timings between multiple chips more accurate as processes actually can be done in parallel and in sync with a shared clock. This is harder to get perfect with software emulation. In theory.
- klodolph 4y agoHardware emulation cannot actually make the emulation more accurate than software emulation. That doesn’t make any logical sense. If you know what the correct timing is, you can emulate it in hardware or software. It’s not harder to do in software. It’s just hard to get the timing correct, regardless of whether you are using software or hardware. There are certain cases where it’s hard to get good performance out of a software emulator, that’s really the main difference.
- bitwize 4y agoIt should be easier to do in software. What's hard is, modelling the hardware accurately, getting the timing correct, AND getting everything performant enough to run at the original hardware speeds. It takes a beefy system to accurately emulate even SNES hardware at full speed. An FPGA can be programmed with accurate hardware models and run them all in parallel at the same speeds the original hardware ran at (up to a limit, I believe today it's somewhere in the low hundreds of MHz for a CPU). This allows for a closer approximation of the original hardware running at usable speeds.
- klodolph 4y agoIt used to take a beefy system to emulate the SNES at full speed. Emulator performance has improved, CPU performance has improved, and nowadays, an outdated and low-spec x86 laptop will run BSNES. You will have problems running BSNES on a Raspberry Pi, though, although I've heard the RPi 4 can do it.
- anyfoo 4y agoMoreover, it can actually be at least "more straightforward" to reach accurate wall clock timings with an FPGA, than by trying to meet deadlines in a common OS environment, as the FPGA is "just" loaded with a bitstream that will it do more or less exactly what the original chip did and nothing else, spoken strictly in the digital domain. I'd also like to think that it's more efficient, since at least in theory it could be (cutting down on all the extremely superfluous software overhead for the task), but sadly I don't actually know how common FPGAs really perform in that specific case against reasonably efficient modern CPUs.
- deleted 4y ago[deleted]
- timbit42 4y agoFPGA is a simulation, not an emulation. Emulation does everything serially while simulation does everything in parallel, just like the real hardware. Also, software emulation on a non-real-time OS such as Windows, macOS or Linux can result in lag when the OS is busy with other things. You never get that on FPGA simulation.
- klodolph 4y agoI’ve never heard that distinction before. It’s all emulation—either in hardware or software, in parallel or in series. I used to work on simulation software professionally. The idea that simulation is parallel while emulation is serial is completely foreign to me, and I suspect foreign to others as well.
- icedchai 4y agoIt is foreign to me, for sure. I have been experimenting with FPGA-based retro systems for years (started with a MIST.) I still consider them "emulators."
- FullyFunctional 4y agoI have worked on simulators for most of my life and the GPs definition is not true. There's no formal distinction between the two, but conventionally emulation is more faithful whereas simulation is more high-level. Still, the two are used fairly interchangeably.
- rusk 4y agoTo me the distinction seems obvious: simulation reproduces the external behaviour of a system i.e from observers pov; emulation reproduces the internal behaviour. Typically the external behaviour emerges from this as a matter of course, but in many cases such a “bottom up” approach isn’t possible or even necessary.
- thrtythreeforty 4y agoI work in silicon development, and we call software models "simulation" and FPGA models "emulation." Both terms are a little arbitrary, but logic on an FPGA is not a simulation, for most definitions of "simulation." Perhaps more accurate than either term is "implementation," since it is an honest-to-God implementation in a digital circuit of the logic. Think of it this way: software tells a computer what to do, gateware tells an FPGA what to be.
- tom_ 4y agoThe I/O latency is typically much closer to the original hardware. OSs have become a bit careless about latency, and LCD screens add some more delay on top. It all adds up, and the result is a slightly inauthentic-feeling experience.