this post was submitted on 15 Mar 2024
116 points (96.0% liked)
Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ
54716 readers
296 users here now
⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.
Rules • Full Version
1. Posts must be related to the discussion of digital piracy
2. Don't request invites, trade, sell, or self-promote
3. Don't request or link to specific pirated titles, including DMs
4. Don't submit low-quality posts, be entitled, or harass others
Loot, Pillage, & Plunder
📜 c/Piracy Wiki (Community Edition):
💰 Please help cover server costs.
Ko-fi | Liberapay |
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
sorry for my ignorance but what does accurate mean in this context?
That the emulator behaves exactly as genuine hardware does.
For one, there are sometimes hardware quirks in consoles that are used to implement features. Like the video screens along the track in Mario Kart 64, the N64 has shared memory between the CPU and GPU, which they used to generate that effect. It's difficult to replicate that behavior in an emulator.
Then there's lag. You might argue that an emulator can provide a better experience by obliterating lag via brute force, but that wouldn't be the authentic experience the real hardware would provide.
Or a simple one I've noticed with SNES emulators: None of them get the sound quite right. It's hard to explain, there's a high pitched "rattle" that isn't present on a genuine SNES, it's almost like any emulation is too perfect and isn't sanding down a rough edge the original hardware did?
Most closely matches the behavior of actual SNES consoles.
This requires very careful emulation of the timings of the various buses and co-processors, as well as on-cart chips which may or may not be present. For instance, a Speedy Gonzales game has a button in the final stage which crashes almost every emulator because enters an infinite loop reading from an open bus and waiting for the value to attain a specific pattern. However reading from an open bus is generally specified to be the last value loaded into the bus, which in this case is the load instruction itself, $18. So the value is read to be $1818 by most emulators, which doesn't match the pattern expected.
However, this is only if you're emulating with instruction level accuracy. It is possible for the value of the bus to change in between the instruction being loaded and the value of the bus being loaded due to an HDMA load being triggered, but this requires a cycle accurate emulator.