Why I hate emulation.

For topics which do not fit in other specific forums.
chanunnaki
Posts: 104
Joined: Tue Jul 07, 2020 1:33 am
Been thanked: 19 times

Why I hate emulation.

Unread post by chanunnaki »

Basically, it's because you never know what you're going to get.

There is far too much tinkering and tweaking to get things looking just right and suiting the capabilities of your hardware. That statement sounds like it might be relevant to PC gaming in general compared to console gaming, and you may have a point, but with PC, you generally tweak within a spec and the games are designed to be tweaked from the outset, with many options. That is a great thing. However, with emulation of old console games; they generally don't have graphics options so tweaking things has more potential to break things.

Anyway, it's not really about the graphics options... I love the graphics options. Being able to 2x or 10x the resolution of games from the PS1 gen is amazing, but seriously... the games themselves are essentially unplayable and anyone playing games through emulation doesn't value their time.

Here's an example... I was playing the game Incredible Crisis on PS1 through RetroPie on Raspberry Pi 4.

This is the game in case you're interested...

external-content.duckduckgo.com.jpg
external-content.duckduckgo.com.jpg (14.8 KiB) Viewed 28965 times

The goal is to mash the X button to fill up the blue bar to stop the elevator from falling. I tried 3 times and no matter what I did, it wouldn't fill up. I tried hitting it as fast as possible, at a slow steady pace etc. but nothing I would could do worked. This is the third level, and the other two previous levels were timing based so I was really confused about what the issue was. So I started troubleshooting... going into options and tweaking things, changing controller polling, restarting retroarch, restarting the pi and more. Nothing worked. I couldn't get past the level.

So then I tested the game on another emulator [openemu] on my Mac. [specs: 12 Core/24 threads, 96GB RAM, RX580]... I was playing with 8bitdo SN30 Pro the whole time, and I passed it first try. OK... so Pi uses RetroArch backend so i decided to try retroarch for Mac. 1.9.0 is the version I was on... Didn't work, rom won't open. Upgraded to 1.9.1, didn't work. Rom wouldn't open. Downgraded again to 1.9.0, and so I just gave up on Mac.

In the end, I got it working by changing the mode on the controller from DInput to Xinput (I think), and finally it worked on the Pi, but damn, what an ordeal. I was lucky I played the game before when I was a kid, so i know I could pass that section, but most other people would probably just give up on that game forever.

To make a long story short, emulation doesn't really have a place in my life anymore. I'm also not sure there is value to emulation anymore either. It's just too frustrating and filled with far too many gotchas to make it an enjoyable experience no matter how shiny or glossy the front ends are.

I could be playing a game through emulation and genuinely, more often than not, not even know if the problem that has occurred is me, the game, or the emulation or the myriad of other things. I might see a missing polygon and not know why. There might be absolutely crucial information or geometry missing from a game and you wouldn't even know it. I saw a YouTube video of someone playing Burnout PS2 emulated through the Xbox Series X, but the sky was just black, completely missing, and he said "Otherwise, it's runs and plays fine".

Any game, at any time can have something broken in it as a result of the emulation "core", or software and from that point, you would have wasted all the time you put into the game. Therefore, my logic suggest to me it was a mistake to have put that time into it in the first place. If the game it's worth playing, it's worth seeking out legitimate stable platforms or methods to play them.

My patience isn't what it used to be. A small bug in a modern AAA game could throw me off it completely, even if I had paid €60 for it, so I certainly have no patience for cruddy emulation wasting my time and breaking games.

There was a time that people suggested: "if it weren't for emulation, most wouldn't get to experience these games from the past", but I would argue that you're actually not really experiencing them how they were supposed to be experienced anyway if you're doing it through emulation, so you may as well just wait until technology has caught up to be able to replicate you desired system or just get the original hardware at this point.

Emulation is truly dead to me. I would rather have played the game on my OG PS1 on its side with cruddy composite-out to a jank-ass mid-80s CRT than play on an emulator.

What I love about MiSTer is that many of the cores are legitimately close enough to real hardware where I feel like it's worthy of my investment in time and money, and goes beyond the original hardware in so many ways, but what I really love most is that it has helped me connect with games again in a way that emulation never was able to in 25 years of trying.

Emulation is never going to be good enough. There are some inherent problems with the whole concept of it that will always create a barrier between the player and the system. I don't care how cycle-accurate the emulation is, it just never feels right. I guess it's OK for some people... but I feel the message needs to start changing on this sooner rather than later. Companies and individuals alike are milking emulation for everything it's worth and you just know they are gonna start milking FPGA soon. For example... does anything actually think Nintendo aren't going to create FPGA versions of their classic mini consoles? They definitely are going to.

Anyway... rant over.
retrodroid
Posts: 122
Joined: Tue Feb 02, 2021 5:55 pm
Has thanked: 78 times
Been thanked: 13 times

Re: Why I hate emulation.

Unread post by retrodroid »

chanunnaki wrote: Sat Apr 03, 2021 7:57 pm ...I would rather have played the game on my OG PS1 on its side with cruddy composite-out to a jank-ass mid-80s CRT than play on an emulator.
Strong take. a mid-80's CRT is a glorious way to play PS1 vs alternatives. Not janky! :)
chanunnaki
Posts: 104
Joined: Tue Jul 07, 2020 1:33 am
Been thanked: 19 times

Re: Why I hate emulation.

Unread post by chanunnaki »

retrodroid wrote: Sat Apr 03, 2021 8:01 pm
chanunnaki wrote: Sat Apr 03, 2021 7:57 pm ...I would rather have played the game on my OG PS1 on its side with cruddy composite-out to a jank-ass mid-80s CRT than play on an emulator.
Strong take. a mid-80's CRT is a glorious way to play PS1 vs alternatives. Not janky! :)
Ah, I'm with you, I love CRT, I have a number of them myself. I'm just referring to a really really crappy CRT with possibly a cracked bezel and a failing, horribly distorted tube. It would still be better than playing on an emulator.

Emulators is like what the phrase: "you can polish a turd, but in the end, it's still a turd" was created for.
Reg
Posts: 118
Joined: Mon Mar 22, 2021 11:38 am
Has thanked: 60 times
Been thanked: 31 times

Re: Why I hate emulation.

Unread post by Reg »

Great post there and not a rant, an opinion.

Before I found the MiSTer FPGA, I would have called you eliteist (spelling - not sure about the e) and full of air as emulators are extremely good, but now I 100% agree and had written something earlier today here that I think we're aligned.

Before the MiSTer I was completely into my emulation. One game I loved was Rally X, I talk about it a little here which is a cut and paste from elsewhere on this site...

"...In MAME it was never the same, the screen had judder and scrolling issues and it never felt right.

For another forum where interests cross, I did a video of what was meant to be a quick demo of games etc and how they looked. The first I did was Rally X.

When playing, it was like the muscle memory of when I was a kid came back and due to the accuracy of this and none of the slight glitiching of maze graphics and scrolling that was very off putting on software emulation, I actually got my highest score ever while recording !

https://www.youtube.com/watch?v=Poa5ZycyNHQ ..."

When I mention the judder and scrolling issues, it breaks the emulation for me - but there was always something in the back of my mind thinking hang on - do I remember history wrong here and I am ( and have always thought the judder was not present ). I've seen so many versions of Rally X all with pretty much the same problem.

Then came the MiSTer.

This is a complete game changer and showed that actually I was not mis-remembering and even after all these years, playing this on the core rather then MAME, I continue to be much better at it.

I've spent a fair bit of time messing with other games on other systems as well and feel that the whole experience is 100% better.

Emulation of arcade games and consoles does have it's place - but for me the priorities have changed - if at all possible to play on the MiSTer, I will.

Beyond that, the emulation will be used as reason to quickly find games I'd like to play and my future vision for the MiSTer is to have top groups in each Game folder, where the great stuff that I enjoy is there.

I guess this makes me by my own words, eliteist and full of air in the view of people that like arcade emulators who will never convert if the core is available for this platform.

One things as well that you didn't touch on but I think is very relevant. What we can do on the core compared to what we would need in terms of very high spec PC's ( and to your point tweaking breaks things - so one model does not fit all ), the MiSTer gives us multi-platforms and very accurate platforms at a baseline price where once you have paid once you don't need to pay again - this is a very awesome cost way of playing all the games we remember ( and actually were pretty good at - even tho the emulation versions showed us otherwise ! ).

Again, great article by you and I hope that those who are new to this system like me read what you have written with eyes open and give it a fair hearing.

To recap, I'd never have beleived the opening post until I experienced it myself - the opening post is a great sales pitch on what you think you know rather then what you really know if you've never used a MiSTer.
Bas
Top Contributor
Posts: 518
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 60 times
Been thanked: 225 times

Re: Why I hate emulation.

Unread post by Bas »

Similar story on the motor memory here. I could play Giana Sisters on C64 almost through to the end on the first try on MiSTer.. which was a great relief after failing at the same game miserably on my i7 laptop running Vice. The timings on the MiSTer are different and feel much closer to "home".

Other than that, the MiSTer is totally hassle-free once initially set up. Switch on, load core, pick game and you're off. No underlying OS to hand-hold. MiSTer updates on my terms when I'm ready to run a script.
jca
Top Contributor
Posts: 1911
Joined: Wed May 27, 2020 1:59 pm
Has thanked: 145 times
Been thanked: 454 times

Re: Why I hate emulation.

Unread post by jca »

If you hate emulation, without any qualifier, you should ditch your MISTer and play on original hardware. MISTer is hardware emulation. I know, MISTer aficionados hate the word emulation because emulation = "bad", they forget that there are several kinds of emulation: software and hardware.
Now I don't want to start an infinite discussion where mud is thrown all over the place. Whatever you call it MISTer is the best for retro gaming and retro computing except for Minimig which has no love for USB drives but is another story.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

This OP feels like Analogue Inc. marketing. ;)

But I know what you mean. However, there is a pretty stark difference between playing on some RetroPie's PS1 emulator and playing with Mednafen on an x86 PC in Windows. What you described is partially because emulators on ARM platforms are usually behind emulators on x86 platforms.
birdybro~
MiSTer_Kirk
Posts: 210
Joined: Thu Feb 04, 2021 11:42 pm
Has thanked: 18 times
Been thanked: 46 times

Re: Why I hate emulation.

Unread post by MiSTer_Kirk »

Modern emulation has it's place. For example, RPCS3 makes me want to box up my PS3 and just use RPCS3. The higher resolutions, patches to take a 30fps game to a 60fps game - and this transforms games. Games like the Motorstorm games have a new lease of life at 4k, 60fps, rather than 720p 30fps. We also have Xenia, a Xbox 360 emulator - not as advanced as RPCS3, but getting there. Running PS2 games in 4k, a few shaders to improve often blurry textures, and anti-aliasing all make PS2 games look amazing. The Dreamcast emulators make DC games at 4k look amazing.

On the SNES, we have high-res mode 7, totally transforms games like Pilot Wings, Super Mario Kart, etc..
On the NES, we have 3DSen, and 3DSenVR - play your NES games with a 3D effect - looks amazing. Even better, the VR version means you can play them on your VR headset.
On PS1, we have PGXP - a perspective correcting feature that fixes those warping texture distortions often seen in most PS1 games. This is where emulation can shine. A PS1 lacked a z-buffer, so lets take emulation and sort of add one back in so we can now do proper z-culling. That in itself is one of the amazing things of emulation.
I do agree, the Mister is better than most emulators. But it still lacks save-state support in most cores. Some cores don't have a disk controller, BBC, Apple (??), and this hampers the cores because we can't use real disk images, only MMC. What I love about the Mister is being able to connect to the same CRT as the real thing. The Raspberry Pi can do the same via it's own composite, or a Pi2Scart, or VGA. But a Pi is still a bit weak for a lot of emulators - and it's a bit too flash for me, I don't like all the flashy front-ends, videos, box art, etc... Nice on a big TV, but I will take as-close-to-real-hardware over a Pi.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

MiSTer_Kirk wrote: Sat Apr 03, 2021 10:28 pm What I love about the Mister is being able to connect to the same CRT as the real thing. The Raspberry Pi can do the same via it's own composite, or a Pi2Scart, or VGA.
The video output from the camcorder-style 3.5mm jack is god-awful compared to the MiSTer. Pi2Scart I hear is somewhat comparable, but there will be extra input lag regardless. As for "vga" I don't know what raspberry pi comes with that, or did someone make a pi2scart equivalent that has VGA recently? :P
birdybro~
MiSTer_Kirk
Posts: 210
Joined: Thu Feb 04, 2021 11:42 pm
Has thanked: 18 times
Been thanked: 46 times

Re: Why I hate emulation.

Unread post by MiSTer_Kirk »

For Pi VGA there is this

https://pinout.xyz/pinout/gertvga_666

And input lag, with Pi2Scart, is very close to the real thing - the Pi runs the emulators with their original 15KHz resolutions.

http://pi2jamma.info/pi2scart

Lag would more likely come from whatever USB controller used, such as USB arcade sticks - I believe there is a lag chart for USB sticks on this forum.
When I was using my Pi2Scart, and real hardware connected to the same Sony PVM, the two was very close when switching between inputs. The Pi had a slightly sharper image, but everything else was very close. If you did a blind test with someone who didn't know, they wouldn't be able to tell the difference.
User avatar
MottZilla
Posts: 43
Joined: Mon May 25, 2020 6:36 am
Has thanked: 1 time
Been thanked: 5 times

Re: Why I hate emulation.

Unread post by MottZilla »

Software emulators can actually be quite good. But the RetroPie with RetroArch suffers from bad input lag. I have seen a setup inside one of the Arcade1Up cabinets with RetroPie and the input lag made anything besides casual play of something like a beat em up game not something I would want to do on it. But there are software emulators that don't suffer these problems.

If you have a CRT there is an image out there for the Raspberry Pi that uses AdvMAME and outputs RGB. I didn't do extensive testing but it seemed to work much better than RetroPie in that cabinet I mentioned before.

Another example would be an emulator that ItMightBeNES on PS1 or maybe one of those on DreamCast. They didn't seem to have the terrible input lag from what I remember.

I personally don't play games on software emulators very much. Usually software emulation I see as being most useful for debugging and development features. If you wanted to hack a game or were making something from scratch it's very useful. But for playing and enjoying games I prefer to play on the original hardware or the MiSTer's hardware emulation on a CRT. I feel it offers the best experience.

But I think a lot of the dislike of software emulators comes from general inaccuracy related issues and some widely used bad emulator setups like RetroPie/RetroArch. Back in the 90s and early 2000s I played lots of games on DOS and Win9X emulators and did not experience issues like horrible input lag. Even today playing MAME on a modern PC seems to work just fine for me and not have any issues with input lag.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

MottZilla wrote: Sat Apr 03, 2021 11:43 pm But I think a lot of the dislike of software emulators comes from general inaccuracy related issues and some widely used bad emulator setups like RetroPie/RetroArch. Back in the 90s and early 2000s I played lots of games on DOS and Win9X emulators and did not experience issues like horrible input lag. Even today playing MAME on a modern PC seems to work just fine for me and not have any issues with input lag.
Your memory is probably off then ;) Software emulators all have significant lag when compared to original hardware and something like the MiSTer. The overhead from the emulator running on an OS, the framebuffer of whatever GPU your PC is using, the issue of vsync. I know I know, run-ahead is a thing now, but run-ahead is buggy. I know, I know, groovymame is a thing now, but you literally have to hunt down older graphics cards just to make it work :P

There is often an extra frame or two of lag or more just from the OS+GPU framebuffer+the fact that the emulator itself has to have some buffering to display right with vsync. The way the MiSTer draws the image directly from the FPGA is cutting out a lot of that lag.

Download bsnes, run it on your modern windows pc, and do the 240p test suite input lag test, and compare to your MiSTer snes core ;)
birdybro~
User avatar
Sarge
Posts: 44
Joined: Tue Jan 12, 2021 5:26 am
Has thanked: 3 times
Been thanked: 5 times

Re: Why I hate emulation.

Unread post by Sarge »

In most games, the lag isn't even noticeable. Only in the worst case scenarios like Punch-Out!! can you really feel the few frames makes a massive difference.

I have really been enjoying the MiSTer project. But there are still advantages to emulation as well, and I liberally use both. And PS1 emulation is definitely better on PC, although for most 3D systems, I tend to agree that using real hardware is better. It will be interesting to see if PSX and Saturn, if they can be made to work on MiSTer, show the accuracy of the current cores.
Image
User avatar
BigMac2
Posts: 36
Joined: Mon Jun 15, 2020 3:24 am
Has thanked: 9 times
Been thanked: 15 times

Re: Why I hate emulation.

Unread post by BigMac2 »

What break software emulation for me isn't a question of lag but video stutter. I'm very sensitive to screen refresh and uneven/misaligned frame timing like watching 24p film converted to 60i/30p TV with telecine. Most software emulation doesn't care about preserving vsync frequency from original hardware like Mister does so easily on both analog and HDMI output. I found an old 16:10 1680x1050 Tekbright screen from Toshiba that I can throw pretty much any video sync upscaled @ native screen resolution from TIAMC1 49.8hz to 70.1hz PC. I am having such a joy of running all core at native vsync (with vsync_adjust=1), each core got the right feeling with silky smooth scrolling and animation, no pauses, no stutters, no jerkiness.

Don't get me wrong, I've played thousands of hours with Mame since version 0.23 and I still have my original copy of Connectix Virtual Game Station somewhere. I've enjoyed playing around with emulator of all kinds but once you've experienced the real thing, software emulation of old "racing the beam" hardware will always feel odd.
FoxbatStargazer
Top Contributor
Posts: 994
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 309 times
Been thanked: 228 times

Re: Why I hate emulation.

Unread post by FoxbatStargazer »

I have a hard time telling the visual lag difference with retroarch on x86 using adaptive sync in fullscreen exclusive, and run ahead = 1 frame, which should avoid any weirdness on supported cores. But you really need to get your setup that specific, and a whole lot more power than a low end ARM chip. Not all the Retroarch cores are nearly as accurate as what's on Mister but you can mostly resolve the lag issue at least.

Sound unfortunately is a whole different story. Things get messy if you don't allow a decent buffer of a few frames, so that sound sync is always going to be off. Plus most cores don't sound as pure as what Mister usually produces.
vanfanel
Posts: 119
Joined: Sun May 24, 2020 6:53 pm
Has thanked: 9 times
Been thanked: 20 times

Re: Why I hate emulation.

Unread post by vanfanel »

I am all for FPGAs, and of course MiSTer is the way to go for me, but emulation isn't necessarily laggy.

Input lag comes from a sum of factors:

-Window managers: Are you emulating outside X11, using the KMSDRM interface?
-Buffering: Have you tried running RetroArch with only 2 buffers or even 1 buffer?
-USB controllers: Have you tried cabled controllers with high USB polling rate via the usbhid.jspoll=1 kernel option?
-Your display: Are you using a laggy HDMI display? Have you tried setting it in "game mode" if it has one?

If you fix all those fronts at the same time, you get the same input lag that you get on the MiSTer: input lag can be scientifically measured, it's not something magical, it's factors are known, so it can be mitigated in emulation.

For the Raspberry Pi, it has been plagued by the propietary Broandcom shitty drivers for years, so yes, it's inherently laggy: but using the opensource KMSDRM video stack (kernel-side driver, libgbm, libdrm and MESA) that is fixed.
If you are still on dispmanx+propietary GLES, then yes, you will get lag no matter what.

As for frame stuttering / desyncs, I am VERY sensible too. But RetroArch syncs the cores to the host's framerate, and so does DuckStation since yesterday providing you activate the "sync to host refresh rate" option. So it's IMPOSSIBLE to have out-of-sync frames if you have enough CPU to cope with the emulation on your buffer scheme (you need more CPU to emulate the same machine on 2 buffers: but running on 3 buffers you get additional lag).

Of course, as I said, MiSTer is WAY better than anything emulated in software, but still, I see some uninformed claims around here.
retrodroid
Posts: 122
Joined: Tue Feb 02, 2021 5:55 pm
Has thanked: 78 times
Been thanked: 13 times

Re: Why I hate emulation.

Unread post by retrodroid »

MiSTer_Kirk wrote: Sat Apr 03, 2021 10:28 pm Modern emulation has it's place. For example, RPCS3 makes me want to box up my PS3 and just use RPCS3. The higher resolutions, patches to take a 30fps game to a 60fps game - and this transforms games. Games like the Motorstorm games have a new lease of life at 4k, 60fps, rather than 720p 30fps. We also have Xenia, a Xbox 360 emulator - not as advanced as RPCS3, but getting there. Running PS2 games in 4k, a few shaders to improve often blurry textures, and anti-aliasing all make PS2 games look amazing. The Dreamcast emulators make DC games at 4k look amazing.

On the SNES, we have high-res mode 7, totally transforms games like Pilot Wings, Super Mario Kart, etc..
On the NES, we have 3DSen, and 3DSenVR - play your NES games with a 3D effect - looks amazing. Even better, the VR version means you can play them on your VR headset.
On PS1, we have PGXP - a perspective correcting feature that fixes those warping texture distortions often seen in most PS1 games. This is where emulation can shine. A PS1 lacked a z-buffer, so lets take emulation and sort of add one back in so we can now do proper z-culling. That in itself is one of the amazing things of emulation.
I do agree, the Mister is better than most emulators. But it still lacks save-state support in most cores. Some cores don't have a disk controller, BBC, Apple (??), and this hampers the cores because we can't use real disk images, only MMC. What I love about the Mister is being able to connect to the same CRT as the real thing. The Raspberry Pi can do the same via it's own composite, or a Pi2Scart, or VGA. But a Pi is still a bit weak for a lot of emulators - and it's a bit too flash for me, I don't like all the flashy front-ends, videos, box art, etc... Nice on a big TV, but I will take as-close-to-real-hardware over a Pi.
For me, the MiSTer's strength is in reproducing an authentic original experience. That's why I use it in my multi-sync CRT arcade cabinet. Everything looks, sounds, and feels amazing. The games have that authentic vibe that is somehow lacking when running via sw emulation. I also am able to play much more consistently and successfully.

This is especially true with 8-bit/16-bit systems since the sw on those ran very "close to the metal" and accurate timings are very important. Once you jump to 32-bit and you have more sophisticated underlying operating systems with massive multithreading, etc., then the MiSTer's strength of the potential for per-cycle accuracy, and even low latency inputs, is less critical, since these systems already have a large amount of "fudge factor" at play and notable input latency from the factory.

For that reason I think it is actually more desirable to play these using high end PCs w/ sw emulation if you are using an HD display. Fans of these 32-bit systems are far less concerned about accuracy to the original system than they are about being able to leverage "nice" improvements as noted in the quoted post above, which makes perfect sense on an HD display.

So for me, MiSTer will always by my magic 8-bit/16-bit box that outputs to my CRT and provides a stunning presentation of classic arcades, consoles, and computers.
User avatar
BigMac2
Posts: 36
Joined: Mon Jun 15, 2020 3:24 am
Has thanked: 9 times
Been thanked: 15 times

Re: Why I hate emulation.

Unread post by BigMac2 »

vanfanel wrote: Sun Apr 04, 2021 10:11 am RetroArch syncs the cores to the host's framerate, and so does DuckStation since yesterday providing you activate the "sync to host refresh rate" option. So it's IMPOSSIBLE to have out-of-sync frames if you have enough CPU to cope with the emulation on your buffer scheme (you need more CPU to emulate the same machine on 2 buffers: but running on 3 buffers you get additional lag).
This is exactly the unfixable issue with software emulation of old cores on modern hardware, they always take the "sync to host refresh rate" option to fix non-60hz core.

I wonder how you can adjust for smooth scrolling games like Dodonpachi with a 57hz core on modern PC without changing the core timings, most of the time they took the same approach of playing 24p movies on 50hz PAL TV by speeding up the movie from 24 to 25fps, It work and most of us never saw the difference, but you still have a odd feeling watching the PAL version of Star Wars if you ever saw it in a theater.

Even on Mister with vsync_adjust=0 or 2 you've got the same "sync to host" speeding issues. All those issues are exacerbated on very old arcade and console, before they had enough VRAM for a full frame buffer, games was not running strict per frame timing and exec their logic and inputs interaction in-between scanline (racing the beam), therefor it was common for games on console like the Atari to use weird non-standard vsync to gain more processing time per scanline for game logic.

Newer console who use per frame timing with fully buffered frames and inputs are much easier to emulate with accurate timing and response since you can sync everything in the emulated buffers before drawing the next frame in a whole.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

BigMac2 wrote: Sun Apr 04, 2021 2:11 pm
vanfanel wrote: Sun Apr 04, 2021 10:11 am RetroArch syncs the cores to the host's framerate, and so does DuckStation since yesterday providing you activate the "sync to host refresh rate" option. So it's IMPOSSIBLE to have out-of-sync frames if you have enough CPU to cope with the emulation on your buffer scheme (you need more CPU to emulate the same machine on 2 buffers: but running on 3 buffers you get additional lag).
This is exactly the unfixable issue with software emulation of old cores on modern hardware, they always take the "sync to host refresh rate" option to fix non-60hz core.
Exactly. This is why if you use the BlastEm! core in retroarch it runs faster than if you use the standalone BlastEm! emulator (which is not as smooth, but is more accurate).
birdybro~
keilmillerjr
Posts: 47
Joined: Wed Mar 24, 2021 12:52 pm
Has thanked: 3 times
Been thanked: 6 times

Re: Why I hate emulation.

Unread post by keilmillerjr »

If you use emulation, stick to the official MAME. I have nothing good to say about retropie.
User avatar
Newsdee
Top Contributor
Posts: 830
Joined: Mon May 25, 2020 1:07 am
Has thanked: 98 times
Been thanked: 209 times

Re: Why I hate emulation.

Unread post by Newsdee »

Emulation can be difficult for a random person to get right. Commercial hardware solutions are usually under-powered or have some compromises (bad scaling, laggy filters), and unless you have a very powerful PC, you may have trouble optimizing emulators for your rig.

With FPGAs, there is nothing to optimize... other than what was done already by the developer of the core.
(you may have less features overall as a downside, though)
User avatar
darksakul
Posts: 352
Joined: Mon May 25, 2020 4:34 pm
Has thanked: 397 times
Been thanked: 73 times

Re: Why I hate emulation.

Unread post by darksakul »

In the end both PC/Raspberry Pi Emulation and FPGA boils down to how well the emulator been coded.
There was and still some less than accurate cores on the MiSTer and there some damn near perfect accuracy on some PC Emulation.

It all depends on how well that code was written.

The upside with PC Emulation is with enough system resources, you can brute force everything and if you got some good low level emulation (simulating the actual chips in software) it runs just as good as the real hardware. The downside is you need alot of system resources to run accurate emulation at low level or the game will stutter and/or have lots of latency. Raspberry Pi got to the point it can run Dreamcast at high level well and it can sorta do Gamecube, but not well or at full speed. As I understand N64 Emulation haven't evolved much in the last 20 years, and it sucks regardless of platform used.

What FPGA does well is because of the nature of the FPGA, you can run the software side on a potato, and there little overhead thus less latency.
The DE 10 nano Cyclone V chips is a hybrid FPGA and Arm, and the Arm CPU side is only 800 mhz. Good enough for Linux file hosting duties, but not much of anything else. Example the Script for PrDoom ran terribly on the Linux side, and you are better off with the current AO486 Core.
But a year ago it was the other way around.
It is my great regret that we live in an age that is proud of machines that think and suspicious of people who try to.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

keilmillerjr wrote: Tue Apr 06, 2021 8:04 am If you use emulation, stick to the official MAME. I have nothing good to say about retropie.
MAME for what? Plenty of console drivers in MAME are pretty terrible when compared to Mednafen/bsnes/BlastEm!/etc... As always, the correct answer is "it depends". :P
birdybro~
FoxbatStargazer
Top Contributor
Posts: 994
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 309 times
Been thanked: 228 times

Re: Why I hate emulation.

Unread post by FoxbatStargazer »

Repeating again: Retroarch on Windows has adaptive sync support! I don't know about "always sync to host" things like mGBA, GenplusGX, SNes9x by default run at their original system speeds and just stutter slightly on default settings, like mister's vsync_adjust=0. Activate a working g-sync/freesync monitor and adaptive sync will make things perfectly smooth by forcing the display to match the original systems. It's ridiculously noticable with 50hz games/cores. Same thing with Mister, if you get an LCD display that actually syncs to vsync_adjust=1 or 2 this issue is completely solved.
ExCyber
Posts: 217
Joined: Sun May 24, 2020 3:33 pm
Has thanked: 11 times
Been thanked: 66 times

Re: Why I hate emulation.

Unread post by ExCyber »

It's possible that I've misunderstood something because much of my knowledge of this is secondhand, but I think most of the drawbacks attributed to software emulators in recent years are really lingering problems with the transition to desktop compositing in mainstream operating systems. Basically, older operating systems allowed applications to draw directly into (some rectangle within) the frame buffer. Video mode changes were also possible, depending on the API (which was always fun when a game with some weird mode crashed and thereby didn't change the mode back). Combined with a CRT monitor, this actually meant that latency could be quite reasonable.

By about 15 years ago (although Apple had a head start), OS vendors had largely changed this so that each application draws into a private off-screen buffer, and then the GPU is used to generate the final display using those buffers as input, a process known as "desktop compositing". Video mode changes were more-or-less simulated by appropriately scaling the buffer and drawing it into a full-screen window. This gave a great deal of flexibility to the OS to provide things like overviews, window previews, and transition animations, but that flexibility was partly at the expense of applications, which had the compositing process happening "behind their back" and were isolated from the actual framebuffer and scanout process by the compositor. The application could still be notified of a "vsync" event, but there was no guarantee that this corresponded to the frame actually being scanned out.

Many modern game developers reacted to this (as well as the increasing proliferation of higher-latency monitors that was happening around the same time) by taking steps to compensate for input lag and generally make precise input timing less critical. Why punish the player for something they can't really control, after all?

This eventually led to various API extensions to observe and control the compositor (see e.g. [1]), but supporting these in an application or game engine is not trivial, and they're not guaranteed to work on every system (sometimes deliberately so, as with GPU control panels that allow forcing vsync on/off).

In other words, the problem has more to do with OS architecture and game design than it has to do with emulation. Emulators mostly suffered because they didn't have the option of tweaking the games they were running to compensate for the increased lag introduced by modern systems, not because lag is inherent to software emulation.

All that is not to say that FPGAs have no advantages. The big one is that no matter the budget for your target board, you're working in a "cycle-accurate" execution model by definition. Of course, whether your results within this model correspond to original hardware involves a whole other set of questions, many of which have been answered via painstaking research by... the developers of those accursed software emulators. :lol:

[1] https://xdc2019.x.org/event/5/contribut ... timing.pdf
aberu wrote: Tue Apr 06, 2021 2:19 pm
keilmillerjr wrote: Tue Apr 06, 2021 8:04 am If you use emulation, stick to the official MAME. I have nothing good to say about retropie.
MAME for what? Plenty of console drivers in MAME are pretty terrible when compared to Mednafen/bsnes/BlastEm!/etc... As always, the correct answer is "it depends". :P
I think the key word there is "official", i.e. actively-maintained upstream as opposed to some fork-of-a-fork that is missing years' worth of fixes and enhancements. A surprising number of people still run some variant of MAME 0.78, a version of MAME that's now older than most of its supported games were when it came out.
witinhalf
Posts: 14
Joined: Thu Jan 28, 2021 12:31 am
Has thanked: 11 times
Been thanked: 5 times

Re: Why I hate emulation.

Unread post by witinhalf »

I've tried to play Yoshi's Island emulated for years. I've tried it with ZSNES, SNES9X, all the retroarch cores, raspberry pi, etc... I was never able to get into the game. It felt like the SNES just wasn't powerful enough to handle such a complex game. I guess that I never played it as it was intended. My friend was over when I got my MiSter and I launched Yoshi's Island to give it a test. The game is not the same game. I love it. Emulation does not cut it for this game.
User avatar
darksakul
Posts: 352
Joined: Mon May 25, 2020 4:34 pm
Has thanked: 397 times
Been thanked: 73 times

Re: Why I hate emulation.

Unread post by darksakul »

Well you first problem was using ZSNES. LOL Kidding.

But seriously ZSNES is notorious for being inaccurate.
SNES 9X did a better job, as the coder tried to do as much as he could in assembly but its off.
There only so much you could do in the 90s in software High level Emulation.

Raspberry Pi isn't a emulator, it's just a SOC some ways just like the DE 10 Nano.

This one part "all the retroarch cores" I am assuming doing it all on a Rasp Pi and not PC.
BSNES (which is on the PC variants of Retroarch) is about as machine accurate as any FPGA core, but the catch it uses up alot of PC system resources, CPU and Ram.

HiGain made by the guy who did BSNES was a slight compromise, slightly backs off the accuracy a hair for performance.
It was a calculated trade off, going 95-98% in instead of 100% for accuracy to not to overtax a CPU.

Thats the advantage FPGA has over software Emulation, it can do all the Low Level emulation in parallel instead of series.
And it can do with with out hogging a High end PC resources to do it.
It is my great regret that we live in an age that is proud of machines that think and suspicious of people who try to.
User avatar
SuperBabyHix
Posts: 152
Joined: Sun May 24, 2020 8:26 pm
Has thanked: 43 times
Been thanked: 34 times

Re: Why I hate emulation.

Unread post by SuperBabyHix »

One thing that hasn't been mentioned as far as software emulation goes is variable refresh rate. VRR setups (like Freesync and Gsync) typically solve the issues with non standard refresh rates of games as well as the added lag of vsync. Of course VRR support does not instantly make an emulator accurate or lag free, but for some emulators this tech does put things in the same arena as OG hardware and the Mister.

My personal experiences with this have been mixed. Retroarch does support syncing to the exact emulated refresh rate, but it seems to break when doing so AND disabling vsync. While I wont say this completely defeats the purpose, it certainly becomes a turd in the punch bowl.

On the other hand, Mame and Mednafen both work very well. I can't attest to this personally, but according to tests performed on the GroovyMame forums, Mame and GroovyMame using the lowlatency=1 setting on a VRR monitor are on par with PCB levels of lag.

This is of course on a desktop PC with a dedicated GPU and not a cheap SBC.
User avatar
aberu
Core Developer
Posts: 1144
Joined: Tue Jun 09, 2020 8:34 pm
Location: Longmont, CO
Has thanked: 244 times
Been thanked: 388 times
Contact:

Re: Why I hate emulation.

Unread post by aberu »

ExCyber wrote: Wed Apr 07, 2021 2:46 am
aberu wrote: Tue Apr 06, 2021 2:19 pm
keilmillerjr wrote: Tue Apr 06, 2021 8:04 am If you use emulation, stick to the official MAME. I have nothing good to say about retropie.
MAME for what? Plenty of console drivers in MAME are pretty terrible when compared to Mednafen/bsnes/BlastEm!/etc... As always, the correct answer is "it depends". :P
I think the key word there is "official", i.e. actively-maintained upstream as opposed to some fork-of-a-fork that is missing years' worth of fixes and enhancements. A surprising number of people still run some variant of MAME 0.78, a version of MAME that's now older than most of its supported games were when it came out.
Yes, officially, current MAME is pretty bad on numerous console drivers. Mednafen has a far superior Saturn emulator, PC-Engine Emulator, etc...
birdybro~
User avatar
pgimeno
Top Contributor
Posts: 669
Joined: Thu Jun 11, 2020 9:44 am
Has thanked: 246 times
Been thanked: 208 times

Re: Why I hate emulation.

Unread post by pgimeno »

I've just tried official MAME 0.221 with ZX Spectrum, and latency is horrible. It takes maybe around 100 ms for a keypress to cause a screen update and a click.

Low latency is one of the strongest points of hardware emulators like MiSTer (and emulators is the right word, because there are very few, if any, transistor-level replicas of the real machines in MiSTer; most cores just try to approximate the observed behaviour because of lack of access to the schematics of the chips).
Post Reply