6 ms·
I'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 a
by phire 5y ago
I'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 ?
- phire 5y agoAccurate timing is most useful when you are retro-programming a video game, or something else real time. How do you know if your game will run at 60 fps if the execution times aren't accurate? > what CPU timing would you even emulate Ideally your emulator would support as many CPU + hardware configurations as possible, at many different speeds, so you can test as many as you want. But just one single accurate hardware configuration is better than none. At least then I can say "I programmed this game it runs on a Pentium III 550E, with a Riva TNT2" It's exactly the same when doing retro-programming on real hardware. If you only have one PC, then you can only confirm it's working on that exact same hardware configuration. But accurate emulators have advantages due to cost and ability to easily support multiple configurations.
- AshamedCaptain 5y ago> How do you know if your game will run at 60 fps if the execution times aren't accurate? Again, this is not a console. If you rely on a specific Pentium 3's instruction timings to reach 60 fps, your game is not going to reach 60fps _on any other PC_, not even if someone has an identical CPU, since any single other difference in hardware, configuration, or even layout of the filesystem is going to matter much more. You just can't get away with the same kinds of bug you can get away with in consoles, because even just trying ATI vs NVIDIA (or any two different brands of accelerator) is already going to be a completely different environment and timings, likely enough to trigger all those bugs (or at least more than different instruction timings will). i.e. even the simplest of emulators (incl. a virtualizer) with a runtime cap is going to suffice for the usecase of mildly estimating a framerate based on the CPU of some era. And there's very little value to increase the accuracy of such estimation since with so wildly varying PC hardware anything you can produce is going to be irrelevant anyway. (How to make a similar accurate-enough estimation of GPU performance is a different story).
- memetomancer 5y agoThere is a world of difference between your inability to see the appeal/utility of a thing and that thing being actually worthless, as you are so stridently insisting here. For a mental exercise, just to prove it to yourself, why don't _you_ try examining all the reasons such accurate emulation might be desirable? The other poster already provided a reasonable motivation - preservation. But since this discussion started, you've only really come out swinging with disparagement. One has to wonder why you are putting so much energy into suppressing and trashing someone's hobby. Frankly it looks to me like you have some kind of preconceived and inflexible bias, or that you maybe trying to discover the appeal to this effort in a pointlessly adversarial way. Not a great look. If you really want people to think you have a smart, winning argument maybe try to show some understanding of both sides of the coin before floating your attempt at a clever and withering denouncement.
- Macha 5y agoNeither Xbox or PS2 are emulated at a cycle level though. They mostly rely on recompilation and API emulation, and PCSX2 has gotten pretty far on that. That generation was really the start of cross platform being the norm, and so the start of a dramatic drop off in games requiring very specific hardware details. If your game had to run on Xbox/PS2/WinXP then there has to be some level of portability considered in the software.
- phire 5y ago> Neither Xbox or PS2 are emulated at a cycle level though Yet... Like I said, you can get pretty far with low-levels of accuracy. PS2 emulation is actually quite timing sensitive. I have at least one bug in Dolphin that I investigated, that can't get fixed correctly until we get significantly better GPU timings. And also some speed-running strategies that rely on generating enough lag, but don't work in dolphin because it (usually) emulates the CPU and GPU way too fast.
- pizza234 5y ago> I'm of the belief that hardware is not truly preserved until you have a fully-accurate emulation of it. This makes sense in principle, but exact emulation is something computationally prohibitive even for a (probably) 386¹. The computational problems of exact emulation have been described in a famous article about emulating the SNES². I suppose that emulating even "just" a superscalar architecture is going to be prohibitive (due to the split into micro ops), and an out-of-order one would probably require transistor-level emulation (or at least, another, lower, level of emulation). ¹=Fairly arbitrary; I'm basing this just on the complexity of emulating the SNES, and the following considerations. ²=https://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator https://arstechnica.com/gaming/2011/08/accuracy-takes-power-...
- frozenport 5y ago>> I'm of the belief that hardware is not truly preserved until you have a fully-accurate emulation of it. BTW Intel has this internally
- userbinator 5y agoI don't doubt that, but at full clock speed?