6 ms·
The point of cycle-accurate emulation is to emulate something with accuracy down the the cycle, so that software that relies on some particularity will work on
by dusted 5y ago
The point of cycle-accurate emulation is to emulate something with accuracy down the the cycle, so that software that relies on some particularity will work on it.
Performance is secondary, you can think of the emulation as a lasting documentation, which in time comes usable due to improvements of hardware and software, or can be used as a reference for FPGA, ASIC or alternative implementations.
- AshamedCaptain 5y agoThe question is which software that requires a Pentium III also requires some CPU timing peculiarity. There have been enough CPU vendors that such software would have been difficult to run even at its era. This is not a videogame console where all hardware was the same, or the early PC world were everything was designed for the Intel 8086 timings as on the IBM PC. This is the modern PC world. Which exact CPU model would you even choose to emulate ?
- dusted 5y agoLet's say I want to emulate my first SMP system, a dual p3 with windows 2000, well, without P3 (and smp) emulation, I can't. If there was SMP P3 emulation, then I could (albeit at horrible speed, at the moment) but at some point, it'd become quite reasonable.
- AshamedCaptain 5y agoThere is SMP P3 emulation. qemu is an emulator, not a virtualizer. There is no cycle-accurate emulation, but again the question is: why would need cycle-accurate emulation to run win2k? It runs just fine on virtualizers, even.
- pornel 5y agoPerhaps for games with DRM?
- anthk 5y agoMost DRM ridded games were cracked.
- dusted 5y agoBut I don't want virtualization, I want cycle accurate emulation of my p3, actually, I want emulation of the underlying chip so that I can run the original Intel microcode on it. I want my bios chips and all that jazz. I want a ship in a bottle, complete with the seven seas and the world to travel. I want it described in software, so it can be emulated, on whatever the future brings, forever.
- Comevius 5y agoProbably no software was ever written specifically for the Pentium 3 (so that it would break on a Pentium 4, or different Pentium 3), so there isn't much reason to emulate it too accurately. What you are asking is FPGA territory anyway, maybe not even that, the Pentium 3 is too complex to accurately emulate.
- anthk 5y ago>Probably no software was ever written specifically for the Pentium 3 The XBOX, but for PC it doesn't has sense unless you want cycle accurate emulation to exploit SSE under an emulated OS such as Windows 98 under Bochs.
- lewispollard 5y agoIsn't the point you're making the same point that the article is making?
- phire 5y agoI'm of the belief that hardware is not truly preserved until you have a fully-accurate emulation of it. You are correctly that software doesn't require fully accurate timings. Just accurate enough to bypass any timing bugs and replicate the experience. Especially outside of the console space. If your only goal is running all known software, then you can get away with some massive accuracy bugs. But there is more to hardware preservation than simply running all software that might have been shipped on a platform. Some people want to do retro programming and develop new software for a platform. And if you don't have accurate emulation, then the more likely you are to introduce a bug that works in the emulator but not on real hardware. The less accurate an emulator, the more often you have to check on real hardware. And since there was such a wide variety of real hardware, your collection would have to be huge to ensure extensive testing. You could argue that people wanting to do retro-coding as a hobby should just test on real hardware, but I'd argue that raises costs to the hobby. Also, in the distant future, the last Pentium III will die, and acquiring real hardware might not be possible. I have no idea if people will still be interesting in retro-coding for the Pentium III that far in the future, but my point is the hardware is not truly preserved unless they can. BTW, the Pentium III was used in a console, with identical hardware configurations, so an accurate P3 might be more useful there. Though, the Pentium III was used in a video game console. An accurate emulation could be more useful there.
- AshamedCaptain 5y ago> your only goal is running all known software, then you can get away with some massive accuracy bugs. > Some people want to do retro programming and develop new software for a platform. And if you don't have accurate emulation, then the more likely you are to introduce a bug that works in the emulator but not on real hardware. The two things go hand by hand. If era-developed software is unlikely to suffer from timing bugs, then _your own software_ is also unlikely to suffer from timing bugs. It's down to the same argument. It's like claiming that because I developed for Pentium 4, my software is unlikely to work on the Pentium 3. Save for the very explicit case that I use some new extensions, how crazily out of the way would I need to go in order to even remotely hit such an issue? In fact, it can all be summarized to: what CPU timing would you even emulate ? Why would you even target the P3 _specifically_? Why not Transmeta? Note that this does not apply to accuracy emulation of accompanying hardware, but then again I would also claim that accuracy of hardware emulation is hardly relevant post-P3, since _the real hardware_ often is massively inaccurate by any definition of the word. Why accurately model a specific Radeon card, when the budget model of the same year is completely different , with the differences abstracted by hacks in the driver ?