9 ms·
Accurate N64 emulation gets resolution upscaling powered by Vulkan (RetroArch)
- monocasa 6y agoI'd love to see how it does in Perfect Dark a few seconds after that screenshot was taken. There's a part in the hallway to the left where you fly a little drone into a laboratory to take a picture. It's one of the traditionally hard places to emulate for these sorts of emulation strategies that abstract the graphics output from the memory pathway of the real system. That's because the effect to make it look like a security camera that would happen these days as a post process fragment shader, is instead done on the main CPU, just reading and writing to the framebuffer. So the GPU emulation actually needs to write out the framebuffer at the correct format/resolution. And then you have to read the framebuffer from memory, not short circuited out of the GPU directly like is the core of how this is designed to get it's benefits.
- anthk 6y agoSimilar to Pokémon Snap them.
- artsyca 6y agoAnd Mario kart! Greets to all of my 64-heads! Man I still remember the late 90's.. Not a care in the world saving up all my money to buy the next cartridge..
- monocasa 6y agoThe Mario Kart example is interesting, because you can achieve it's effect by simply teeing off the GPU output both to RAM (scaled down to native) and directly scanned out. The neat thing about the perfect dark effect is that they read modify write the entire framebuffer and it represents the full scanned out frame, so in those cases you'd need to drop scan out resolution back down dynamically, where as on the Mario Kart example you can keep the higher scan out resolution.
- monocasa 6y agoI think pokemon snap does it all on the GPU side, but I'm not 100% on that.
- keanebean86 6y agoI would hug someone if I could have a playable Vigilante 8 experience. Explosions are black squares. The menu does weird things. Many other smaller bugs. I played that game so much as a teen. It's possible the PS version is more playable but it would feel off playing the wrong version.
- Grazester 6y agoHave you tried the Dreamcast version?
- keanebean86 6y agoNope. How does it compare?
- dahfizz 6y agoCan someone explain the advantage of increasing the native resolution vs upscaling after rendering? For something like a photograph, you want as high a 'native resolution' as possible, so that there is as much information as possible in the original image. But for old video games, the assets and textures are still the same. Is this a bit like taking a high megapixel photo of a low quality print? Or is my understanding wrong? I'm sure things like AA work better in the native renderer. Are there other advantages?
- SECProto 6y agoThere are some projects that swap out textures for higher res versions. But I think the bigger advantage is for distant objects - if you zoom in the goldeneye screenshot, you can see the face texture of the guy at the other end of the hall. If the regular native resolution had been used and upscaled afterwards, you wouldn't see the face at all, just a face-coloured blur
- Polylactic_acid 6y agoI don't know the details of this project but I have seen emulators use processes more complex than a basic image upscale to get really nice results out of low resolution textures. I think its similar to those anime upscailing tools where its trained on a dataset of textures and is able to redraw them at higher resolutions.
- saagarjha 6y agoSadly, those techniques aren’t nearly fast enough to work for emulation.
- Polylactic_acid 6y agoCould they not run once on all of the textures and then save them to a file for use in game?
- rossy 6y agoYou'd be surprised at what image processing algorithms are fast enough to work in realtime when they have optimised GPU implementations. Anime4K is one of those CNN-based anime upscaling tools, and it can run in realtime as a shader in mpv. (I'm not a fan of those upscaling tools myself, but I don't see why they couldn't be used in emulators, for the people who like them.)
- Causality1 6y agoHLE has had increased internal resolution for many years now. What's the advantage of implementing in in an LLE fashion?
- deleted 6y ago[deleted]
- p1necone 6y agoHigher accuracy, mostly. The closer you get to the behavior of the real hardware the less game specific hacks you have to have to make everything look correct.
- FillardMillmore 6y agoUnfortunately, doesn't look like there's a Mac version in the works. It's awesome that people are still working on this kind of stuff though. I somewhat wish there were equivalent screenshots of the games as seen with the original resolution for comparative purposes.
- harrygeez 6y agoThat's because there are currently no Vulkan implementation in macOS. The closest thing is MoltenVK and I'm not sure how well it performs
- saagarjha 6y agoI think there’s a Dolphin branch using it that does reasonably well.
- DCKing 6y agoRetroArch and Vulkan based projects in general are supported on Macs, since RetroArch has integrated MoltenVK. For this particular project, it's up in the air whether it actually works. Parallel RDP is not a "standard Vulkan game", and if I understand correctly behaves more like a compute shader program written in Vulkan. As a result, it requires the presence of certain more niche Vulkan extensions. MoltenVK by its nature is not as "feature rich" a Vulkan driver as bare metal Vulkan drivers are, so it might be missing extensions required for Parallel to work. In Parallel RDP's first iteration, it required a Vulkan extension that allows GPUs to use system memory, which was only present in certain Windows/Linux GPU drivers but not in MoltenVK. There's already a workaround for this with a minor performance impact. Parallel RDP now seems to work on a few mobile GPU Vulkan implementations [1], which would be encouraging for MoltenVK as those drivers tend to be lower quality and have less coverage also. Maybe Parallel RDP already works on MoltenVK in fact, and just requires some testing [2]. [1]: https://www.libretro.com/index.php/parallel-n64-rdp-android-support-and-intel-igpu-improvements-what-you-should-know-and-what-to-expect/ https://www.libretro.com/index.php/parallel-n64-rdp-android-... [2]: Worth noting it has only been released for Windows and Linux so this would require some building yourself: https://www.libretro.com/index.php/parallel-rdp-rewritten-from-scratch-available-in-parallel-n64-right-now-for-retroarch/ https://www.libretro.com/index.php/parallel-rdp-rewritten-fr...
- gnyman 6y agoIf you happen to have a old N64 lying around, or can find one to buy, there are also great options for getting it working with a new TV. The RAD2X being a easy way to get started https://www.retrogamingcables.co.uk/RAD2X-CABLES https://www.retrogamingcables.co.uk/RAD2X-CABLES In combination with refurbishing the original controllers with some new plastic https://store.kitsch-bent.com/product/n64-joystick-gears https://store.kitsch-bent.com/product/n64-joystick-gears you and maybe a everdrive you can enjoy the original experience without too much work. Still.. It can't increase the original resolution like this, this is just gorgeous... And so sharp
- p1necone 6y agoOne of the most important things those cables do is bypass the N64s built in blur filter. This was basically a unique thing to the N64 in that generation and it really is just a blurring of the video output, like you've smeared vaseline on your screen. Maybe it made sense on the already kinda distorted consumer TVs of the day as a kind of primitive anti aliasing, I think it's horrible though. https://www.youtube.com/watch?v=QDiHgKil8AQ https://www.youtube.com/watch?v=QDiHgKil8AQ
- sheepdestroyer 6y agoOMG, no. That's simply atrocious. It makes your beautiful N64 games look like PS1 ones! My guess in this debate always has been that those ugly sharp pixels must be an aquired taste of those on the side of the console war of the time who had to rationalize their preference for the look of games on their less capable platform of choice. ;)
- p1necone 6y agoI'm a fan of the result achieved with just the HDMI cable in that video - the first pass of processing that's removed by the gameshark hides the dithering, so removing this seems to make things look worse in a lot of cases (and as you point out makes it feel less like an n64 and more like a PS1 - just add some polygon jitter and you'd be all the way there). But the second layer of processing that the HDMI cable removes just adds more blur for no reason. Edit: actually watched the whole video and realized the HDMI cable is actually doing post hoc image processing to reverse the blur, which is why the dithering is still wiped out but the blur is gone, which is pretty neat.
- Pfhreak 6y agoAre there examples of before/after shots? My memory of these games is a little fuzzy and tinged with nostalgia. The images feel crisper than I remember the games being, but it would be great to see a side by side example.
- orionblastar 6y agoStar Wars Rogue Squadron runs choppy in the previous emulators. I wonder if this is the fix for it?
- Animats 6y agoThe effect is kind of strange. Some things get upscaled and others don't. The icons retain their original jaggedness. Low-detail background objects are not sharpened. Only the main character seems to get a full resolution upgrade. Does this use some anime character specific algorithm?
- nemetroid 6y agoThe textures are unchanged, so texture details will stay blurry. However, Mario mostly has flat textures with detail given by Gouraud shading, which is more amenable to upscaling.
- MaxBarraclough 6y agoThere's been a Super Mario 64 texture pack for years now. Presumably it would be possible, but not trivial, to combine it with this new project. [0] https://youtu.be/a1vnSHMjuuA?t=72 https://youtu.be/a1vnSHMjuuA?t=72
- TazeTSchnitzel 6y agoI wish people would stop referring to increased internal resolution in emulators as “upscaling”. There is no upscaling/resampling/interpolation/filtering happening here, it's just rendering at a higher resolution than on the original console. Referring to it as “upscaling” makes it sound like post-processing applied to a low-resolution image, like on an upscaling DVD or Blu-ray player or NVidia's DLSS, which is not what is happening here.
- deleted 6y ago[deleted]
- rowanG077 6y agoThis. I read upscaling and my interest dropped. If I increase the resolution the game renders at it's not upscaling it's rendering at a higher resolution.