I remember back in the day the emulator Snes9x was one of the best emulators for Super Nintendo emulation, but it’s not on the Megathread. Is it no longer trustworthy or was it just missed?

Sorry if this was already asked in this community. I would’ve searched but Lemmy (or at least my Lemmy instance, I suppose) doesn’t seem to have a search function for intra-Community searching.

Cheers.

    • Captain Aggravated@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      27
      ·
      10 months ago

      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?

    • OmnipotentEntity@beehaw.org
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      9 months ago

      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.