What happens if you emulate an emulator?

  • Thread starter Thread starter smallsnake
  • Start date Start date
  • Views Views 3,033
  • Replies Replies 21

smallsnake

Member
Newcomer
Joined
Mar 6, 2022
Messages
6
Reaction score
0
Trophies
0
Age
111
Location
123456789
XP
78
Country
Vanuatu
I would assume that emulating an emulator screws up CPU timings resulting in a very glitchy game. Has anyone tried running blargSNES on the Switch using Citra or something similar?
 
Many have done this when a given system does not emulate something more obscure, or does so with fewer features than more developed takes on other systems.

For instance the GBA might be impossibly weak today compared to handheld ARM devices but in its day it was best in class and thus got a lot of very highly optimised and feature rich ( http://nintendo-ds.dcemu.co.uk/emulators-for-gba-1158173.html ) where today many of those will not have developed emulators on various platforms, or they will try to extract money from you for it, where GBA stuff is probably handled well. Nesting emulators then bypassing this.

It tends not to be glitchy either unless it is one of those exceptions that make emulation more complicated ( https://arstechnica.com/gaming/2011...-3ghz-quest-to-build-a-perfect-snes-emulator/ https://mgba.io/tag/debugging/ https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-emulators/ and 27c3: Reverse Engineering the MOS 6502 CPU for some links here).

It gets more tricky when things make use of dynamic recompilation (PS1/N64 on up really for consoles, maybe Windows 95 on up if doing PC but lines get very blurry there) as the emulator will instead look at it like a bunch of assembly code (mainly because it kind of is at that point) and then require more traditional emulation approaches to swap in at the cost of power.
Certainly faults and concessions can stack at emulator or game level to produce something sub optimal, even more so if something in the chain uses some kind of undocumented function, emulator weakness (see various fun with emulator specific ROM hacks on the SNES, and I guess some stuff with texture replacement or Lua scripts) or just incredibly tight timings (several covered in the ars technica link). For the most part though it does not come close to rendering it unusable and can be quite a viable strategy to get things working on various systems that might have weaker emulation of certain devices.
 
  • Like
Reactions: Takokeshi
A singularity is created and swallows up the universe quicker than Kirby swallows up a fucking car or whatever ridiculous thing Nintendo come up with next.
 
It's not that emulating an emulator screws up CPU timings, but often CPU timings emulated do not match native host CPU cycles, thus since skipping cycles may happen in host emulator, could actually cause client's CPU cycles to run incorrectly, leading to wrong emulated CPU behavior. This can be replicated by turning on dynamic recompilation on some host emulator, then running a client emulator, or by running HLE host emulators while trying to run client emulators, while resources granted to HLE host emulators mismatch from host machine (which means emulating or translating that layer, which is what Dolphin does).



An hypervisor gets around that by reusing host CPU resources to "virtualize", or to put simply, copy state machine resources required by client CPU with no cost at all, causing a severe increase in performance.
 
  • Like
Reactions: Takokeshi
As long as each emulator is accurate, nesting emulators can work fine. As an example, I've successfully done the following: the Donkey Kong game for the NES, running on the GBC (no name for this emulator), running on the GBA via Goomba Color, then on my computer via VisualBoyAdvance. Granted the framerate can be measured in seconds-per-frame, but it works!

I imagine you could possibly use GBArunner2 to see if that GBA file would run on the DS, and emulate the whole thing with no$GBA for the PC or DraStic for Android. That would add one more link to the chain.
 
What'll happen? Someone will make inception jokes, that's what 'll happen.

But ey... Since you asked : i dabbled around with bluestack a short bit : an android emulator. One of the things i tested was a snes emulator. It worked. Can't say how well or accurate, but it did its thing. I didn't even try remapping the buttons.
 
  • Like
Reactions: felix.200
My preferred way of playing N64 games is through Wii VC, on Dolphin. So I guess I'm running an emulator within an emulator :P
 
  • Like
Reactions: AmandaRose
My preferred way of playing N64 games is through Wii VC, on Dolphin. So I guess I'm running an emulator within an emulator :P
You could go one further with Donkey Kong 64. It has a hidden game in it called Jetpac which just happens to be one of my favourite games. But why do I mention it well its an old ZX Spectrum game and in DK 64 there is a ZX Spectrum Emulator that runs Jetpac.

So if you boot DK64 in Dolphin then find the hidden version of Jetpac you will be running an emulator within an emulator within an emulator :rofl2:
 
Last edited by AmandaRose,
Does DK64 work well on Wii VC inject? 🤔

I do have the Wii U VC one though... maybe my PC can run cemu well enough to run the VC :P
 
  • Like
Reactions: AmandaRose
Does DK64 work well on Wii VC inject? 🤔

I do have the Wii U VC one though... maybe my PC can run cemu well enough to run the VC :P
No idea how it runs on Wii VC lol but if anyone wants to try this is how to get Jetpac.

You get Jetpac by going to Cranky's Lab after collecting fifteen Banana Medals and talking to Cranky Kong. If you can then score 5000 points in the game you will be rewarded with a Rareware Coin.
 
They have a love child and it takes over the world rendering all life forms hallow, plastic, and artificial, thinking they got the rock, when they really got a pebble.
 
They have a love child and it takes over the world rendering all life forms hallow, plastic, and artificial, thinking they got the rock, when they really got a pebble.
I guess someone already did this then.

🎵 Life in plastic, it's fantastic🎵
 
I kinda saw this question, and i was like 'Pff thats stupid... -clicks because i wanna know anyways-'
i am not disappointed :3
 
  • Like
Reactions: Takokeshi
Well it's extremely simple on what happens if you emulate an emulator, that no matter what doing the same thing within the same thing enters you into a weird, unnerving place. That is the realm of the metaverse, (not that other metaverse tho)
 
Last edited by TomRiddle,
GoldenEye 007 has a "working" ZX Spectrum emulator built into the game code. So if you're emulating GoldenEye you can emulate a handful of Rare ZX Spectrum games inside that.

It requires a patch to get it working, but you can find a copy of it on The Cutting Room Floor.
 
oE4fJUdqNyk.jpg
 

Site & Scene News

New Hot Discussed User Submitted